assertSame($mixedOut, bx_process_input($mixedIn, $iType)); } static public function providerForProcessInput() { return [ ['42', BX_DATA_INT, 42], [' 42 ', BX_DATA_INT, 42], ['x', BX_DATA_INT, false], ['', BX_DATA_INT, false], ['3.14', BX_DATA_FLOAT, 3.14], [' 2.5 ', BX_DATA_FLOAT, 2.5], ['nope', BX_DATA_FLOAT, false], ['on', BX_DATA_CHECKBOX, 'on'], [' on ', BX_DATA_CHECKBOX, 'on'], ['off', BX_DATA_CHECKBOX, ''], ['1', BX_DATA_CHECKBOX, ''], ['1985-10-28', BX_DATA_DATE, '1985-10-28'], ['1985-1-2', BX_DATA_DATE, '1985-01-02'], ['not-a-date', BX_DATA_DATE, false], ['1985/10/28', BX_DATA_DATE, false], ['1985-10-28T00:59:35', BX_DATA_DATETIME, '1985-10-28 00:59:35'], ['1985-10-28 00:59:35', BX_DATA_DATETIME, '1985-10-28 00:59:35'], ['1985-10-28 00:59', BX_DATA_DATETIME, '1985-10-28 00:59:00'], ['1985-10-28', BX_DATA_DATETIME, '1985-10-28'], [['1', '2'], BX_DATA_INT, [1, 2]], ['plain', BX_DATA_TEXT, 'plain'], ]; } #[DataProvider('providerForJsString')] public function testJsString($sIn, $iQuoteType, $sOut) { $this->assertSame($sOut, bx_js_string($sIn, $iQuoteType)); } static public function providerForJsString() { return [ ['say "hi"', BX_ESCAPE_STR_AUTO, 'say "hi"'], ["it's", BX_ESCAPE_STR_AUTO, 'it's'], ['', BX_ESCAPE_STR_AUTO, '<script>x</script>'], ["it's", BX_ESCAPE_STR_APOS, "it\\'s"], ['', BX_ESCAPE_STR_APOS, "x"], ['say "hi"', BX_ESCAPE_STR_QUOTE, 'say \\"hi\\"'], ['', BX_ESCAPE_STR_QUOTE, 'x'], ["line\nbreak", BX_ESCAPE_STR_AUTO, 'line\\nbreak'], ]; } #[DataProvider('providerForHtmlAttribute')] public function testHtmlAttribute($sIn, $iQuoteType, $sOut) { $this->assertSame($sOut, bx_html_attribute($sIn, $iQuoteType)); } static public function providerForHtmlAttribute() { return [ ['say "hi"', BX_ESCAPE_STR_AUTO, 'say "hi"'], ["it's", BX_ESCAPE_STR_AUTO, 'it's'], ["it's", BX_ESCAPE_STR_APOS, "it\\'s"], ['say "hi"', BX_ESCAPE_STR_QUOTE, 'say "hi"'], ["it's", BX_ESCAPE_STR_QUOTE, "it's"], ]; } #[DataProvider('providerForHtmlspecialcharsAdv')] public function testHtmlspecialcharsAdv($sIn, $sOut) { $this->assertSame($sOut, htmlspecialchars_adv($sIn)); } static public function providerForHtmlspecialcharsAdv() { return [ ['a & b', 'a & b'], ['say "hi"', 'say "hi"'], ["it's", "it's"], ['&', '&'], ]; } public function testEncryptUserPwdDefaultAlgo() { $sAlgo = defined('BX_PWD_ALGO') ? BX_PWD_ALGO : ''; if ($sAlgo && $sAlgo !== 'sha1_md5_salt') $this->markTestSkipped('BX_PWD_ALGO is not sha1_md5_salt'); $sPwd = 'secret'; $sSalt = 'pepper'; $this->assertSame(sha1(md5($sPwd) . $sSalt), encryptUserPwd($sPwd, $sSalt)); } }