diff --git a/src/css/Parser.js b/src/css/Parser.js index 97fafec4..b3740672 100644 --- a/src/css/Parser.js +++ b/src/css/Parser.js @@ -259,7 +259,7 @@ Parser.prototype = function(){ tokenStream.mustMatch([Tokens.STRING, Tokens.URI]); //grab the URI value - uri = tokenStream.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/, "$1"); + uri = tokenStream.token().value.replace(/^(?:url\()?["']?([^"']+?)["']?\)?$/, "$1"); this._readWhitespace(); diff --git a/tests/css/Parser.js b/tests/css/Parser.js index 1083c25a..981cb529 100644 --- a/tests/css/Parser.js +++ b/tests/css/Parser.js @@ -1722,6 +1722,34 @@ Assert.areEqual("-moz-inline-stack", event.value.parts[0].text, "Vendor prefixed value -moz-inline-stack is intact."); }); var result = parser.parse(".foo {\n display: -moz-inline-stack;\n}"); + }, + + "Test @import uri without quotes": function(){ + var parser = new Parser({ strict: true}); + parser.addListener("import", function(event){ + Assert.areEqual("import", event.type); + Assert.areEqual("http://www.yahoo.com", event.uri); + }); + var result = parser.parse("@import url(http://www.yahoo.com);"); + }, + + + "Test @import uri with quotes": function(){ + var parser = new Parser({ strict: true}); + parser.addListener("import", function(event){ + Assert.areEqual("import", event.type); + Assert.areEqual("http://www.yahoo.com", event.uri); + }); + var result = parser.parse("@import url('http://www.yahoo.com');"); + }, + + "Test @import address": function(){ + var parser = new Parser(); + parser.addListener("import", function(event){ + Assert.areEqual("import", event.type); + Assert.areEqual("http://www.yahoo.com", event.uri); + }); + var result = parser.parse("@import 'http://www.yahoo.com';"); } }));