summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2008-06-26 12:05:14 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2008-06-26 12:05:14 +0000
commit6d1f8a2e90f1b125fcd8839a0f9f5811c97fb8c9 (patch)
tree74d77677d8115ff6071b0d5621702dd8ab0fc3d1 /test
parent76b814183691e731a6d6e564fcc0e98ddac4adf3 (diff)
downloadlibcss-6d1f8a2e90f1b125fcd8839a0f9f5811c97fb8c9.tar.gz
libcss-6d1f8a2e90f1b125fcd8839a0f9f5811c97fb8c9.tar.bz2
Correctly process unterminated strings.
svn path=/trunk/libcss/; revision=4455
Diffstat (limited to 'test')
-rw-r--r--test/data/lex/tests2.dat86
-rw-r--r--test/lex-auto.c4
2 files changed, 89 insertions, 1 deletions
diff --git a/test/data/lex/tests2.dat b/test/data/lex/tests2.dat
index 5548327..f13c25b 100644
--- a/test/data/lex/tests2.dat
+++ b/test/data/lex/tests2.dat
@@ -27,3 +27,89 @@ CHAR:}
S
EOF
#reset
+
+#data
+@import url("abcde
+);
+#expected
+ATKEYWORD:import
+S
+FUNCTION:url
+INVALID:abcde
+S
+CHAR:)
+CHAR:;
+S
+EOF
+#reset
+
+#data
+body {
+ font-family: "Bitstream Vera Sans;
+}
+.one { width: 10em; }
+#expected
+IDENT:body
+S
+CHAR:{
+S
+IDENT:font-family
+CHAR::
+S
+INVALID:Bitstream Vera Sans;
+S
+CHAR:}
+S
+CHAR:.
+IDENT:one
+S
+CHAR:{
+S
+IDENT:width
+CHAR::
+S
+DIMENSION:10em
+CHAR:;
+S
+CHAR:}
+S
+EOF
+#reset
+
+#data
+body { font-family: "Bitstream Vera Sans; }
+.two { width: 10em; }
+#expected
+IDENT:body
+S
+CHAR:{
+S
+IDENT:font-family
+CHAR::
+S
+INVALID:Bitstream Vera Sans; }
+S
+CHAR:.
+IDENT:two
+S
+CHAR:{
+S
+IDENT:width
+CHAR::
+S
+DIMENSION:10em
+CHAR:;
+S
+CHAR:}
+S
+EOF
+#reset
+
+#data
+"abcde
+#expected
+INVALID:abcde
+S
+EOF
+#reset
+
diff --git a/test/lex-auto.c b/test/lex-auto.c
index 82533d1..b75fbb0 100644
--- a/test/lex-auto.c
+++ b/test/lex-auto.c
@@ -204,7 +204,7 @@ const char *string_from_type(css_token_type type)
{
const char *names[] =
{
- "IDENT", "ATKEYWORD", "STRING", "HASH", "NUMBER",
+ "IDENT", "ATKEYWORD", "STRING", "INVALID", "HASH", "NUMBER",
"PERCENTAGE", "DIMENSION", "URI", "UNICODE-RANGE", "CDO",
"CDC", "S", "COMMENT", "FUNCTION", "INCLUDES",
"DASHMATCH", "PREFIXMATCH", "SUFFIXMATCH", "SUBSTRINGMATCH",
@@ -222,6 +222,8 @@ css_token_type string_to_type(const char *data, size_t len)
return CSS_TOKEN_ATKEYWORD;
else if (len == 6 && strncasecmp(data, "STRING", len) == 0)
return CSS_TOKEN_STRING;
+ else if (len == 7 && strncasecmp(data, "INVALID", len) == 0)
+ return CSS_TOKEN_INVALID_STRING;
else if (len == 4 && strncasecmp(data, "HASH", len) == 0)
return CSS_TOKEN_HASH;
else if (len == 6 && strncasecmp(data, "NUMBER", len) == 0)