diff options
author | Leif Åstrand <leif@vaadin.com> | 2013-10-22 09:12:59 +0300 |
---|---|---|
committer | Leif Åstrand <leif@vaadin.com> | 2013-10-22 09:12:59 +0300 |
commit | d70961ff2539aabe99eea22683a8ae77efdc81e5 (patch) | |
tree | c3876e2266ace7e90d8dc82e35f22631e2ce29e5 /theme-compiler | |
parent | a48370a761a6d0b6c54196da0defdb30b47a5bb1 (diff) | |
parent | ee809e5985d7a438e031c40bed160ac78ae8d0bc (diff) | |
download | vaadin-framework-d70961ff2539aabe99eea22683a8ae77efdc81e5.tar.gz vaadin-framework-d70961ff2539aabe99eea22683a8ae77efdc81e5.zip |
Merge changes from origin/7.1
c7ae45c Validate that the connector is enabled before triggering actions for it (#12743)
ce89a75 Created constants for tested browser versions (#12786)
f9ea9b3 Allow running tests locally by overriding runLocally() (#12786)
e70ba25 Added liferay module for building liferay.zip #12748
7c12694 Add sub directory support to sass test scanner (#12790)
39fdf66 Handle numbers in the same way if they do not have a unit (#12732)
6155d61 Disable fallback in a way compatible with Atmosphere JS 2.0.3 (#12241)
f401595 Test for pushing large chunks of data (#12567)
d41967d Skip compilation of TB2 tests if tests.tb2.skip is set
6c1ba81 Reverted button click() logic check (#12743)
779c8a0 Disable automated testing on Opera until issues are resolved (#12487, #12367, #12800)
962c1c3 Fix compilation error
7ee11a7 Remove unused test super class (#12786)
a4211dc Resolve concurrency issue in running TB3 tests
20c28aa Fixed javadoc
0d36896 Add more hax to make test work with new Atmosphere JS (#12241)
ed50200 Fix serialization issue (#12703)
dd51b7f Added more exception handling to PushHandler (#12578, #11882)
6f76840 Sass variables can now start with underscore (#12716)
ab5b20c Ticket #12727 - Panels get unnecessary scroll bars in WebKit when content is 100% wide.
361ad17 Fixed focus issue in TableMoveFocusWithSelectionTest (#12540)
ee809e5 Revert broken fix and test (#12446)
Change-Id: I71b6e3c2dc6b02845794df0934ba807d7ccac784
Diffstat (limited to 'theme-compiler')
22 files changed, 158 insertions, 60 deletions
diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/LexicalUnitImpl.java b/theme-compiler/src/com/vaadin/sass/internal/parser/LexicalUnitImpl.java index 498e1a941b..af94de0f46 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/LexicalUnitImpl.java +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/LexicalUnitImpl.java @@ -148,6 +148,22 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, return f; } + /** + * Returns the float value as a string unless the value is an integer. In + * that case returns the integer value as a string. + * + * @return a string representing the value, either with or without decimals + */ + public String getFloatOrInteger() { + float f = getFloatValue(); + int i = (int) f; + if ((i) == f) { + return i + ""; + } else { + return f + ""; + } + } + public void setFloatValue(float f) { this.f = f; i = (int) f; @@ -274,7 +290,7 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, text = Integer.toString(getIntegerValue(), 10); break; case LexicalUnit.SAC_REAL: - text = getFloatValue() + ""; + text = getFloatOrInteger(); break; case LexicalUnit.SAC_EM: case SCSSLexicalUnit.SAC_LEM: @@ -295,13 +311,7 @@ public class LexicalUnitImpl implements LexicalUnit, SCSSLexicalUnit, case LexicalUnit.SAC_HERTZ: case LexicalUnit.SAC_KILOHERTZ: case LexicalUnit.SAC_DIMENSION: - float f = getFloatValue(); - int i = (int) f; - if ((i) == f) { - text = i + getDimensionUnitText(); - } else { - text = f + getDimensionUnitText(); - } + text = getFloatOrInteger() + getDimensionUnitText(); break; case LexicalUnit.SAC_URI: text = "url(" + getStringValue() + ")"; diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj index d563b739b0..871be2c4d0 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/Parser.jj @@ -559,7 +559,7 @@ TOKEN : /* basic tokens */ ( <H> )? ( <H> )? ( [ " ", "\t" , "\n" , "\r", "\f" ] )? > | < #ESCAPE : <UNICODE> | ( "\\" [ " "-"~","\200"-"\377" ] ) > - | < #NMSTART : ("-")?[ "a"-"z"] | <NONASCII> | <ESCAPE> > + | < #NMSTART : ("-")?[ "a"-"z","_"] | <NONASCII> | <ESCAPE> > | < #NMCHAR : ["a"-"z", "0"-"9", "-", "_"] | <NONASCII> | <ESCAPE> > | < #STRINGCHAR : [ "\t"," ","!","#","$","%","&","("-"~" ] | "\\\n" | "\\\r\n" | "\\\r" | "\\\f" diff --git a/theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java b/theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java index bf4ebf5c06..224a8dbfc1 100644 --- a/theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java +++ b/theme-compiler/src/com/vaadin/sass/internal/parser/ParserTokenManager.java @@ -3259,7 +3259,7 @@ public class ParserTokenManager implements ParserConstants { } break; case 162: - if ((0x7fffffe07fffffeL & l) != 0L) { + if ((0x7fffffe87fffffeL & l) != 0L) { if (kind > 103) { kind = 103; } @@ -3310,10 +3310,10 @@ public class ParserTokenManager implements ParserConstants { } break; case 38: - if ((0x7fffffe07fffffeL & l) != 0L) { + if ((0x7fffffe87fffffeL & l) != 0L) { jjCheckNAddStates(0, 3); } - if ((0x7fffffe07fffffeL & l) != 0L) { + if ((0x7fffffe87fffffeL & l) != 0L) { if (kind > 72) { kind = 72; } @@ -3339,7 +3339,7 @@ public class ParserTokenManager implements ParserConstants { } break; case 24: - if ((0x7fffffe07fffffeL & l) != 0L) { + if ((0x7fffffe87fffffeL & l) != 0L) { if (kind > 72) { kind = 72; } @@ -3390,7 +3390,7 @@ public class ParserTokenManager implements ParserConstants { } break; case 174: - if ((0x7fffffe07fffffeL & l) != 0L) { + if ((0x7fffffe87fffffeL & l) != 0L) { if (kind > 103) { kind = 103; } @@ -3408,7 +3408,7 @@ public class ParserTokenManager implements ParserConstants { } break; case 75: - if ((0x7fffffe07fffffeL & l) != 0L) { + if ((0x7fffffe87fffffeL & l) != 0L) { if (kind > 76) { kind = 76; } @@ -3438,10 +3438,6 @@ public class ParserTokenManager implements ParserConstants { } break; case 4: - if ((0x7fffffe07fffffeL & l) != 0L) { - jjCheckNAddStates(138, 140); - } - break; case 5: if ((0x7fffffe87fffffeL & l) != 0L) { jjCheckNAddStates(138, 140); @@ -3671,14 +3667,6 @@ public class ParserTokenManager implements ParserConstants { } break; case 76: - if ((0x7fffffe07fffffeL & l) == 0L) { - break; - } - if (kind > 76) { - kind = 76; - } - jjCheckNAddTwoStates(77, 78); - break; case 77: if ((0x7fffffe87fffffeL & l) == 0L) { break; @@ -3898,7 +3886,7 @@ public class ParserTokenManager implements ParserConstants { } break; case 108: - if ((0x7fffffe07fffffeL & l) == 0L) { + if ((0x7fffffe87fffffeL & l) == 0L) { break; } if (kind > 103) { @@ -4586,7 +4574,7 @@ public class ParserTokenManager implements ParserConstants { } break; case 267: - if ((0x7fffffe07fffffeL & l) == 0L) { + if ((0x7fffffe87fffffeL & l) == 0L) { break; } if (kind > 72) { @@ -4595,12 +4583,12 @@ public class ParserTokenManager implements ParserConstants { jjCheckNAddTwoStates(225, 226); break; case 268: - if ((0x7fffffe07fffffeL & l) != 0L) { + if ((0x7fffffe87fffffeL & l) != 0L) { jjCheckNAddStates(0, 3); } break; case 269: - if ((0x7fffffe07fffffeL & l) == 0L) { + if ((0x7fffffe87fffffeL & l) == 0L) { break; } if (kind > 72) { @@ -4809,14 +4797,6 @@ public class ParserTokenManager implements ParserConstants { } break; case 333: - if ((0x7fffffe07fffffeL & l) == 0L) { - break; - } - if (kind > 95) { - kind = 95; - } - jjCheckNAddTwoStates(334, 335); - break; case 334: if ((0x7fffffe87fffffeL & l) == 0L) { break; diff --git a/theme-compiler/tests/resources/automatic/css/functions/abs.css b/theme-compiler/tests/resources/automatic/css/functions/abs.css new file mode 100644 index 0000000000..3c43804a13 --- /dev/null +++ b/theme-compiler/tests/resources/automatic/css/functions/abs.css @@ -0,0 +1,11 @@ +.foo { + a: 0; + b: 12.51; + c: 1.1px; + d: 12; + e: 12px; + f: 12.9999; + g: 12.9999em; + h: 13.0001; + i: 13.0001%; +}
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/css/functions/ceil.css b/theme-compiler/tests/resources/automatic/css/functions/ceil.css new file mode 100644 index 0000000000..9956ff3612 --- /dev/null +++ b/theme-compiler/tests/resources/automatic/css/functions/ceil.css @@ -0,0 +1,11 @@ +.foo { + a: 0; + b: -12; + c: -1px; + d: 12; + e: 12px; + f: 13; + g: 13em; + h: 14; + i: 14%; +}
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/css/functions/floor.css b/theme-compiler/tests/resources/automatic/css/functions/floor.css new file mode 100644 index 0000000000..f96e99d809 --- /dev/null +++ b/theme-compiler/tests/resources/automatic/css/functions/floor.css @@ -0,0 +1,11 @@ +.foo { + a: 0; + b: -13; + c: -2px; + d: 12; + e: 12px; + f: 12; + g: 12em; + h: 13; + i: 13%; +}
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/css/functions/round.css b/theme-compiler/tests/resources/automatic/css/functions/round.css new file mode 100644 index 0000000000..72d9a8596d --- /dev/null +++ b/theme-compiler/tests/resources/automatic/css/functions/round.css @@ -0,0 +1,11 @@ +.foo { + a: 0; + b: -13; + c: -1px; + d: 12; + e: 12px; + f: 13; + g: 13em; + h: 13; + i: 13%; +}
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/scss/foo/bar.scss b/theme-compiler/tests/resources/automatic/scss/foo/_bar.scss index 326d34232d..326d34232d 100644 --- a/theme-compiler/tests/resources/automatic/scss/foo/bar.scss +++ b/theme-compiler/tests/resources/automatic/scss/foo/_bar.scss diff --git a/theme-compiler/tests/resources/automatic/scss/functions/abs.scss b/theme-compiler/tests/resources/automatic/scss/functions/abs.scss new file mode 100644 index 0000000000..91946f0556 --- /dev/null +++ b/theme-compiler/tests/resources/automatic/scss/functions/abs.scss @@ -0,0 +1,11 @@ +.foo { +a: abs(0); +b: abs(-12.51); +c: abs(-1.1px); +d: abs(12); +e: abs(12px); +f: abs(12.9999); +g: abs(12.9999em); +h: abs(-13.0001); +i: abs(-13.0001%); +} diff --git a/theme-compiler/tests/resources/automatic/scss/functions/ceil.scss b/theme-compiler/tests/resources/automatic/scss/functions/ceil.scss new file mode 100644 index 0000000000..ad7ceed4b4 --- /dev/null +++ b/theme-compiler/tests/resources/automatic/scss/functions/ceil.scss @@ -0,0 +1,11 @@ +.foo { +a: ceil(0); +b: ceil(-12.51); +c: ceil(-1.1px); +d: ceil(12); +e: ceil(12px); +f: ceil(12.9999); +g: ceil(12.9999em); +h: ceil(13.000001); +i: ceil(13.000001%); +} diff --git a/theme-compiler/tests/resources/automatic/scss/functions/floor.scss b/theme-compiler/tests/resources/automatic/scss/functions/floor.scss new file mode 100644 index 0000000000..a10f1b4fc1 --- /dev/null +++ b/theme-compiler/tests/resources/automatic/scss/functions/floor.scss @@ -0,0 +1,11 @@ +.foo { +a: floor(0); +b: floor(-12.51); +c: floor(-1.1px); +d: floor(12); +e: floor(12px); +f: floor(12.9999); +g: floor(12.9999em); +h: floor(13.000001); +i: floor(13.000001%); +} diff --git a/theme-compiler/tests/resources/automatic/scss/functions/round.scss b/theme-compiler/tests/resources/automatic/scss/functions/round.scss new file mode 100644 index 0000000000..3f1fa06aec --- /dev/null +++ b/theme-compiler/tests/resources/automatic/scss/functions/round.scss @@ -0,0 +1,11 @@ +.foo { +a: round(0); +b: round(-12.51); +c: round(-1.1px); +d: round(12); +e: round(12px); +f: round(12.9999); +g: round(12.9999em); +h: round(13.000001); +i: round(13.000001%); +} diff --git a/theme-compiler/tests/resources/automatic/scss/import-file-which-contains-comment-in-last-line.scss b/theme-compiler/tests/resources/automatic/scss/import-file-which-contains-comment-in-last-line.scss index 41adc908ed..8292d4efe3 100644 --- a/theme-compiler/tests/resources/automatic/scss/import-file-which-contains-comment-in-last-line.scss +++ b/theme-compiler/tests/resources/automatic/scss/import-file-which-contains-comment-in-last-line.scss @@ -1,4 +1,4 @@ -@import "to-be-imported/imported-file-contains-comments-in-last-line.scss"; +@import "to-be-imported/_imported-file-contains-comments-in-last-line.scss"; .foo{ foo: $foo; }
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/scss/nested-import.scss b/theme-compiler/tests/resources/automatic/scss/nested-import.scss index 605d64a13a..df720a5584 100644 --- a/theme-compiler/tests/resources/automatic/scss/nested-import.scss +++ b/theme-compiler/tests/resources/automatic/scss/nested-import.scss @@ -1,3 +1,3 @@ .foo { - @import "foo/bar.scss"; + @import "foo/_bar.scss"; }
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/scss/to-be-imported/imported-file-contains-comments-in-last-line.scss b/theme-compiler/tests/resources/automatic/scss/to-be-imported/_imported-file-contains-comments-in-last-line.scss index 16244f2bfd..16244f2bfd 100644 --- a/theme-compiler/tests/resources/automatic/scss/to-be-imported/imported-file-contains-comments-in-last-line.scss +++ b/theme-compiler/tests/resources/automatic/scss/to-be-imported/_imported-file-contains-comments-in-last-line.scss diff --git a/theme-compiler/tests/resources/automatic/scss/url-path.scss b/theme-compiler/tests/resources/automatic/scss/url-path.scss index 0cc954bfb4..6903d389b5 100644 --- a/theme-compiler/tests/resources/automatic/scss/url-path.scss +++ b/theme-compiler/tests/resources/automatic/scss/url-path.scss @@ -1 +1 @@ -@import "foo/bar.scss";
\ No newline at end of file +@import "foo/_bar.scss";
\ No newline at end of file diff --git a/theme-compiler/tests/resources/automatic/scss/utf8-imported/to-be-imported-scss-file-contains-utf8.scss b/theme-compiler/tests/resources/automatic/scss/utf8-imported/_to-be-imported-scss-file-contains-utf8.scss index f8a08a4a96..f8a08a4a96 100644 --- a/theme-compiler/tests/resources/automatic/scss/utf8-imported/to-be-imported-scss-file-contains-utf8.scss +++ b/theme-compiler/tests/resources/automatic/scss/utf8-imported/_to-be-imported-scss-file-contains-utf8.scss diff --git a/theme-compiler/tests/resources/automatic/scss/utf8.scss b/theme-compiler/tests/resources/automatic/scss/utf8.scss index b568674073..251d6e6513 100644 --- a/theme-compiler/tests/resources/automatic/scss/utf8.scss +++ b/theme-compiler/tests/resources/automatic/scss/utf8.scss @@ -1,4 +1,4 @@ @charset "UTF-8"; -@import "utf8-imported/to-be-imported-scss-file-contains-utf8"; +@import "utf8-imported/_to-be-imported-scss-file-contains-utf8"; .bar {content: "\1f4c5";} .raw_utf {content: "📈";}
\ No newline at end of file diff --git a/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/AbstractDirectoryScanningSassTests.java b/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/AbstractDirectoryScanningSassTests.java index 40da6179f6..21edde0c17 100644 --- a/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/AbstractDirectoryScanningSassTests.java +++ b/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/AbstractDirectoryScanningSassTests.java @@ -19,7 +19,6 @@ package com.vaadin.sass.testcases.scss; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; -import java.io.FilenameFilter; import java.io.IOException; import java.net.URISyntaxException; import java.net.URL; @@ -36,28 +35,43 @@ import com.vaadin.sass.testcases.scss.SassTestRunner.FactoryTest; public abstract class AbstractDirectoryScanningSassTests { public static Collection<String> getScssResourceNames(URL directoryUrl) - throws URISyntaxException { + throws URISyntaxException, IOException { List<String> resources = new ArrayList<String>(); - for (File scssFile : getScssFiles(directoryUrl)) { - resources.add(scssFile.getName()); + for (String scssFile : getScssFiles(directoryUrl)) { + resources.add(scssFile); } return resources; } - private static File[] getScssFiles(URL directoryUrl) - throws URISyntaxException { + private static List<String> getScssFiles(URL directoryUrl) + throws URISyntaxException, IOException { URL sasslangUrl = directoryUrl; File sasslangDir = new File(sasslangUrl.toURI()); File scssDir = new File(sasslangDir, "scss"); Assert.assertTrue(scssDir.exists()); - return scssDir.listFiles(new FilenameFilter() { + List<File> scssFiles = new ArrayList<File>(); + addScssFilesRecursively(scssDir, scssFiles); - @Override - public boolean accept(File dir, String name) { - return name.endsWith(".scss"); + List<String> scssRelativeNames = new ArrayList<String>(); + for (File f : scssFiles) { + String relativeName = f.getCanonicalPath().substring( + scssDir.getCanonicalPath().length() + 1); + scssRelativeNames.add(relativeName); + } + return scssRelativeNames; + } + + private static void addScssFilesRecursively(File scssDir, + List<File> scssFiles) { + for (File f : scssDir.listFiles()) { + if (f.isDirectory()) { + addScssFilesRecursively(f, scssFiles); + } else if (f.getName().endsWith(".scss") + && !f.getName().startsWith("_")) { + scssFiles.add(f); } - }); + } } protected abstract URL getResourceURL(String path); @@ -69,7 +83,7 @@ public abstract class AbstractDirectoryScanningSassTests { File cssFile = getCssFile(scssFile); referenceCss = IOUtils.toString(new FileInputStream(cssFile)); ScssStylesheet scssStylesheet = ScssStylesheet.get(scssFile - .getAbsolutePath()); + .getCanonicalPath()); scssStylesheet.compile(); String parsedCss = scssStylesheet.toString(); @@ -88,6 +102,9 @@ public abstract class AbstractDirectoryScanningSassTests { css = css.replaceAll("^[\n\r\t ]*", ""); // remove trailing whitespace css = css.replaceAll("[\n\r\t ]*$", ""); + css = css.replaceAll(";", ";\n"); + css = css.replaceAll("\\{", "\\{\n"); + css = css.replaceAll("}", "}\n"); return css; } @@ -103,7 +120,7 @@ public abstract class AbstractDirectoryScanningSassTests { return new File(res.toURI()); } - private File getCssFile(File scssFile) { - return new File(scssFile.getAbsolutePath().replace("scss", "css")); + private File getCssFile(File scssFile) throws IOException { + return new File(scssFile.getCanonicalPath().replace("scss", "css")); } } diff --git a/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/AutomaticSassTests.java b/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/AutomaticSassTests.java index 4134c564f9..66e0bedac0 100644 --- a/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/AutomaticSassTests.java +++ b/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/AutomaticSassTests.java @@ -15,6 +15,7 @@ */ package com.vaadin.sass.testcases.scss; +import java.io.IOException; import java.net.URISyntaxException; import java.net.URL; import java.util.Collection; @@ -37,7 +38,7 @@ public class AutomaticSassTests extends AbstractDirectoryScanningSassTests { @TestFactory public static Collection<String> getScssResourceNames() - throws URISyntaxException { + throws URISyntaxException, IOException { return getScssResourceNames(getResourceURLInternal("")); } diff --git a/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/SassLangTests.java b/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/SassLangTests.java index 4b8aada524..a8c9e80a3a 100644 --- a/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/SassLangTests.java +++ b/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/SassLangTests.java @@ -15,6 +15,7 @@ */ package com.vaadin.sass.testcases.scss; +import java.io.IOException; import java.net.URISyntaxException; import java.net.URL; import java.util.Collection; @@ -42,7 +43,7 @@ public class SassLangTests extends AbstractDirectoryScanningSassTests { @TestFactory public static Collection<String> getScssResourceNames() - throws URISyntaxException { + throws URISyntaxException, IOException { return getScssResourceNames(getResourceURLInternal("")); } diff --git a/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/SassLangTestsBroken.java b/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/SassLangTestsBroken.java index 6b812a6940..0656565c20 100644 --- a/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/SassLangTestsBroken.java +++ b/theme-compiler/tests/src/com/vaadin/sass/testcases/scss/SassLangTestsBroken.java @@ -15,6 +15,7 @@ */ package com.vaadin.sass.testcases.scss; +import java.io.IOException; import java.net.URISyntaxException; import java.net.URL; import java.util.Collection; @@ -45,7 +46,7 @@ public class SassLangTestsBroken extends AbstractDirectoryScanningSassTests { @TestFactory public static Collection<String> getScssResourceNames() - throws URISyntaxException { + throws URISyntaxException, IOException { return getScssResourceNames(getResourceURLInternal("")); } |