public function testVbsStringDefault() { $this->assertEquals("\"\"", Reform::VbsString(null, null), "Null for both parameters"); $this->assertEquals("\"abc\"&chrw(60)", Reform::VbsString(null, "abc<")); $this->assertEquals("chrw(60)&\"abc\"", Reform::VbsString(null, "<abc")); // Usual stuff $this->assertEquals("\"default\"", Reform::VbsString(null, "default"), "Checking default"); // Non encoded characters $this->assertEquals("\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0987654321 ,.\"", Reform::VbsString(null, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0987654321 ,."), "Non encoding chars via default"); // Usual suspects $this->assertEquals("chrw(60)&chrw(62)&chrw(38)&chrw(34)&chrw(92)&chrw(39)", Reform::VbsString(null, "<>&\"\\'"), "Usual suspects via default"); // Other characters $this->assertEquals("chrw(96)&chrw(126)&chrw(33)&chrw(64)&chrw(35)&chrw(36)&chrw(37)&chrw(94)&chrw(38)&chrw(42)&chrw(40)&chrw(41)&chrw(95)&chrw(43)&chrw(61)&chrw(45)&chrw(123)&chrw(125)&chrw(124)&chrw(92)&chrw(93)&chrw(91)&chrw(58)&chrw(59)&chrw(39)&chrw(47)&chrw(63)&chrw(62)&chrw(60)", Reform::VbsString(null, "`~!@#\$%^&*()_+=-{}|\\][:;'/?><"), "Punctuation via default"); // Unicode characters $toEncode = ""; $encodedStr = ""; for ($i = 128; $i < 6000; $i++) { $toEncode .= ReformTests::unichr($i); $encodedStr .= sprintf("&chrw(%d)", $i); } $encodedStr = ltrim($encodedStr, '&'); // remove & $this->assertEquals($encodedStr, Reform::VbsString(null, $toEncode), "Unicode characters to 6000 via default"); // The following are sanity checks // Non encoded characters $this->assertEquals("\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0987654321 ,.\"", Reform::VbsString("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0987654321 ,.", "default"), "Non encoding chars"); // Usual suspects $this->assertEquals("chrw(60)&chrw(62)&chrw(38)&chrw(34)&chrw(92)&chrw(39)", Reform::VbsString("<>&\"\\'", "default"), "Usual suspects"); // Other characters $this->assertEquals("chrw(96)&chrw(126)&chrw(33)&chrw(64)&chrw(35)&chrw(36)&chrw(37)&chrw(94)&chrw(38)&chrw(42)&chrw(40)&chrw(41)&chrw(95)&chrw(43)&chrw(61)&chrw(45)&chrw(123)&chrw(125)&chrw(124)&chrw(92)&chrw(93)&chrw(91)&chrw(58)&chrw(59)&chrw(39)&chrw(47)&chrw(63)&chrw(62)&chrw(60)", Reform::VbsString("`~!@#\$%^&*()_+=-{}|\\][:;'/?><", "default"), "Punctuation"); // Unicode characters $toEncode = ""; $encodedStr = ""; for ($i = 128; $i < 6000; $i++) { $toEncode .= ReformTests::unichr($i); $encodedStr .= sprintf("&chrw(%d)", $i); } $encodedStr = ltrim($encodedStr, '&'); // remove & $this->assertEquals($encodedStr, Reform::VbsString($toEncode, "default"), "Unicode characters to 6000"); }