diff --git a/src/tests/kits/storage/MimeSnifferTest.cpp b/src/tests/kits/storage/MimeSnifferTest.cpp
index 4193d49701..0db67494e0 100644
--- a/src/tests/kits/storage/MimeSnifferTest.cpp
+++ b/src/tests/kits/storage/MimeSnifferTest.cpp
@@ -712,20 +712,20 @@ MimeSnifferTest::ScannerTest() {
// The uber test
{ "0 -0 +0 1 -2 +3 0. -0. +0. 1. -2. +3. 0.0 -0.1 +0.2 1.0 -2.1 +3.2 "
"0.e0 0.e-1 0.e+2 1.e1 2.e-2 3.e+3 -1.e1 -2.e-2 -3.e+3 +1.e1 +2.e-2 +3.e+3 "
- "0.012345 1.23456 ( ) [ ] | & : "
- " \"abcxyzABCXYZ_ ( ) [ ] | & : \t\n \\\" ' \\012\\0\\377\\x00\\x12\\xab\\xCD\\xeF\\x1A\\xb2 \" "
- " 'abcxyzABCXYZ_ ( ) [ ] | & : \t\n \" \\' \\012\\0\\377\\x00\\x12\\xab\\xCD\\xeF\\x1A\\xb2 ' "
- " \\000abc_xyz123 \\xA1a1 \\!\\?\\\\ "
- " 0x00 0x12 0xabCD 0xaBcD 0x0123456789aBcDeFfEdCbA", 49,
+ "0.012345 1.23456 ( ) [ ] | & : -i "
+ " \"abcxyzABCXYZ_ ( ) [ ] | & : -i \t\n \\\" ' \\012\\0\\377\\x00\\x12\\xab\\xCD\\xeF\\x1A\\xb2 \" "
+ " 'abcxyzABCXYZ_ ( ) [ ] | & : -i \t\n \" \\' \\012\\0\\377\\x00\\x12\\xab\\xCD\\xeF\\x1A\\xb2 ' "
+ " \\000abc_xyz123\"'\"'456 \\xA1a1 \\!\\?\\\\ "
+ " 0x00 0x12 0xabCD 0xaBcD 0x0123456789aBcDeFfEdCbA", 50,
{ I(0), I(0), I(0), I(1), I(-2), I(3), F(0.0), F(0.0), F(0.0),
F(1.0), F(-2.0), F(3.0), F(0.0), F(-0.1), F(0.2), F(1.0), F(-2.1), F(3.2),
F(0.0), F(0.0e-1), F(0.0e2), F(1.0e1), F(2.0e-2), F(3.0e3),
F(-1.0e1), F(-2.0e-2), F(-3.0e3), F(1.0e1), F(2.0e-2), F(3.0e3),
F(0.012345), F(1.23456), T(LeftParen), T(RightParen), T(LeftBracket),
- T(RightBracket), T(Divider), T(Ampersand), T(Colon),
- S(std::string("abcxyzABCXYZ_ ( ) [ ] | & : \t\n \" ' \012\0\377\x00\x12\xab\xCD\xeF\x1A\xb2 ", 46)),
- S(std::string("abcxyzABCXYZ_ ( ) [ ] | & : \t\n \" ' \012\0\377\x00\x12\xab\xCD\xeF\x1A\xb2 ", 46)),
- S(std::string("\000abc_xyz123", 11)),
+ T(RightBracket), T(Divider), T(Ampersand), T(Colon), T(CaseInsensitiveFlag),
+ S(std::string("abcxyzABCXYZ_ ( ) [ ] | & : -i \t\n \" ' \012\0\377\x00\x12\xab\xCD\xeF\x1A\xb2 ", 49)),
+ S(std::string("abcxyzABCXYZ_ ( ) [ ] | & : -i \t\n \" ' \012\0\377\x00\x12\xab\xCD\xeF\x1A\xb2 ", 49)),
+ S(std::string("\000abc_xyz123\"'\"'456", 18)),
S("\241a1"),
S("!?\\"),
S(std::string("\x00", 1)), S("\x12"), S("\xAB\xCD"), S("\xAB\xCD"),
@@ -752,9 +752,9 @@ MimeSnifferTest::ScannerTest() {
for (int j = 0; j < testCases[i].tokenCount; j++) {
const Token *token = stream.Get();
CHK(token);
-
-// cout << tokenTypeToString(token->Type()) << endl;
/*
+ cout << tokenTypeToString(token->Type()) << endl;
+
if (token->Type() == CharacterString)
cout << " token1 == " << token->String() << endl;
if (testCases[i].tokens[j]->Type() == CharacterString)
@@ -762,17 +762,17 @@ MimeSnifferTest::ScannerTest() {
if (token->Type() == CharacterString)
{
- const char *str = token->String();
+ const std::string &str = token->String();
printf("parser: ");
- for (int i = 0; i < strlen(str); i++)
+ for (int i = 0; i < str.length(); i++)
printf("%x ", str[i]);
printf("\n");
}
if (testCases[i].tokens[j]->Type() == CharacterString)
{
- const char *str = (testCases[i].tokens[j])->String();
+ const std::string &str = (testCases[i].tokens[j])->String();
printf("tester: ");
- for (int i = 0; i < strlen(str); i++)
+ for (int i = 0; i < str.length(); i++)
printf("%x ", str[i]);
printf("\n");
}
@@ -1124,7 +1124,12 @@ MimeSnifferTest::SnifferTest() {
// Conjunctions
"1.0 ([4] 'rock') ([9] 'roll')",
"1.0 [5] ('roll') [10] ('rock')",
- "1.0 [4] ('rock' | 'roll') ([9] 'rock' | [10] 'roll')",
+ "1.0 [4] ('rock' | 'roll') ([9] 'rock' | [10] 'roll')",
+ // Case insensitivity tests
+ "1.0 [4] (-i 'Rock' | 'Roll')",
+ "1.0 [9] ('Rock' | -i 'Roll')",
+ "1.0 (-i [4] 'Rock' | [9] 'Roll')",
+ "1.0 ([9] 'Rock' | -i [4] 'Roll')",
};
const int ruleCount = sizeof(rules)/sizeof(char*);
struct test_case {
@@ -1144,7 +1149,8 @@ int main() { \n\
", { true, true, true, true, false,
false, false, false, false, false, false, false,
false, false, false, false,
- false, false, false
+ false, false, false,
+ false, false, false, false
}
},
//------------------------------
@@ -1159,7 +1165,8 @@ int main() { \n\
", { false, true, true, true, false,
false, false, false, false, false, false, false,
false, false, false, false,
- false, false, false
+ false, false, false,
+ false, false, false, false
}
},
//------------------------------
@@ -1174,7 +1181,8 @@ void main(); \n\
", { false, false, true, false, false,
false, false, false, false, false, false, false,
false, false, false, false,
- false, false, false
+ false, false, false,
+ false, false, false, false
}
},
//------------------------------
@@ -1192,7 +1200,8 @@ int main() { \n\
false, false, false, false, false, false, false,
false, false, false, true,
// ^^^^ <= coincedence
- false, false, false
+ false, false, false,
+ false, false, false, false
}
},
//------------------------------
@@ -1211,43 +1220,68 @@ is ten times as fun
\n\
", { false, false, false, false, true,
false, false, false, false, false, false, false,
false, false, false, false,
- false, false, false
+ false, false, false,
+ false, false, false, false
}
},
//--------- <= Ten characters in
{
-" rock&roll",
+" rock&roll", // 5,10
{ false, false, false, false, false,
true, false, true, true, false, false, true,
false, false, false, false,
- false, false, false
+ false, false, false,
+ false, false, false, false
}
},
//--------- <= Ten characters in
{
-" rock&roll",
+" rock&roll", // 4,9
{ false, false, false, false, false,
true, true, true, true, false, true, false,
false, false, false, false,
- true, false, false
+ true, false, false,
+ true, true, true, false
}
},
//--------- <= Ten characters in
{
-" roll&rock",
+" roll&rock", // 5,10
{ false, false, false, false, false,
false, true, true, true, false, true, false,
false, false, false, false,
- false, true, false
+ false, true, false,
+ false, false, false, false
}
},
//--------- <= Ten characters in
{
-" roll&rock",
+" roll&rock", // 4,9
{ false, false, false, false, false,
true, true, true, true, false, true, true,
false, false, false, false,
- false, false, true
+ false, false, true,
+ true, true, false, true
+ }
+},
+//--------- <= Ten characters in
+{
+" ROCK&ROLL", // 4,9
+ { false, false, false, false, false,
+ false, false, false, false, false, false, false,
+ false, false, false, false,
+ false, false, false,
+ true, true, true, false
+ }
+},
+//--------- <= Ten characters in
+{
+" rOlL&RoCk", // 4,9
+ { false, false, false, false, false,
+ false, false, false, false, false, false, false,
+ false, false, false, false,
+ false, false, false,
+ true, true, false, true
}
},
//------------------------------
@@ -1256,7 +1290,8 @@ is ten times as fun
\n\
{ false, false, false, false, false,
false, false, false, false, false, false, false,
true, false, false, true,
- false, false, false
+ false, false, false,
+ false, false, false, false
}
},
//------------------------------
@@ -1265,7 +1300,8 @@ is ten times as fun
\n\
{ false, false, false, false, false,
false, false, false, false, false, false, false,
true, false, false, false,
- false, false, false
+ false, false, false,
+ false, false, false, false
}
},
//------------------------------
@@ -1274,7 +1310,8 @@ is ten times as fun
\n\
{ false, false, false, false, false,
false, false, false, false, false, false, false,
false, false, false, true,
- false, false, false
+ false, false, false,
+ false, false, false, false
}
},
//------------------------------
@@ -1283,7 +1320,8 @@ std::string("\033\000 033 000", 10), // Otherwise, it thinks the NULL is the end
{ false, false, false, false, false,
false, false, false, false, false, false, false,
false, true, false, false,
- false, false, false
+ false, false, false,
+ false, false, false, false
}
},
//------------------------------
@@ -1292,7 +1330,8 @@ std::string("\000\034 000 034", 10), // Otherwise, it thinks the NULL is the end
{ false, false, false, false, false,
false, false, false, false, false, false, false,
false, false, true, false,
- false, false, false
+ false, false, false,
+ false, false, false, false
}
},
//------------------------------
@@ -1301,7 +1340,8 @@ std::string("\000\034 000 034", 10), // Otherwise, it thinks the NULL is the end
{ false, false, false, false, false,
false, false, false, false, false, false, false,
false, true, true, false,
- false, false, false
+ false, false, false,
+ false, false, false, false
}
},
}; // tests[]