Search in sources :

Example 1 with ECSSVersion

use of com.helger.css.ECSSVersion in project ph-css by phax.

the class CSSReader30SpecialFuncTest method testReadSpecialBadButRecoverable.

@Test
public void testReadSpecialBadButRecoverable() {
    final CollectingCSSParseErrorHandler aErrors = new CollectingCSSParseErrorHandler();
    final ECSSVersion eVersion = ECSSVersion.CSS30;
    final Charset aCharset = StandardCharsets.UTF_8;
    final File aFile = new File("src/test/resources/testfiles/css30/bad_but_recoverable_and_browsercompliant/test-string.css");
    final CascadingStyleSheet aCSS = CSSReader.readFromFile(aFile, aCharset, eVersion, aErrors.and(new LoggingCSSParseErrorHandler()));
    assertNotNull(aFile.getAbsolutePath(), aCSS);
}
Also used : CascadingStyleSheet(com.helger.css.decl.CascadingStyleSheet) CollectingCSSParseErrorHandler(com.helger.css.reader.errorhandler.CollectingCSSParseErrorHandler) ECSSVersion(com.helger.css.ECSSVersion) Charset(java.nio.charset.Charset) File(java.io.File) LoggingCSSParseErrorHandler(com.helger.css.reader.errorhandler.LoggingCSSParseErrorHandler) Test(org.junit.Test)

Example 2 with ECSSVersion

use of com.helger.css.ECSSVersion in project ph-css by phax.

the class CSSReader30SpecialFuncTest method testReadSingleLineComments.

@Test
public void testReadSingleLineComments() {
    final ECSSVersion eVersion = ECSSVersion.CSS30;
    final Charset aCharset = StandardCharsets.UTF_8;
    final File aFile = new File("src/test/resources/testfiles/css30/good/artificial/test-singleline-comments.css");
    final CascadingStyleSheet aCSS = CSSReader.readFromFile(aFile, aCharset, eVersion);
    assertNotNull(aCSS);
    assertEquals(13, aCSS.getRuleCount());
    assertEquals(13, aCSS.getStyleRuleCount());
    // #any1 - #any5
    assertEquals(2, aCSS.getStyleRuleAtIndex(1).getDeclarationCount());
    assertEquals(1, aCSS.getStyleRuleAtIndex(2).getDeclarationCount());
    assertEquals(1, aCSS.getStyleRuleAtIndex(3).getDeclarationCount());
    assertEquals(0, aCSS.getStyleRuleAtIndex(4).getDeclarationCount());
    assertEquals(0, aCSS.getStyleRuleAtIndex(5).getDeclarationCount());
    // .test1 - .test7
    assertEquals(2, aCSS.getStyleRuleAtIndex(6).getDeclarationCount());
    assertEquals(3, aCSS.getStyleRuleAtIndex(7).getDeclarationCount());
    assertEquals(1, aCSS.getStyleRuleAtIndex(8).getDeclarationCount());
    assertEquals(1, aCSS.getStyleRuleAtIndex(9).getDeclarationCount());
    assertEquals(2, aCSS.getStyleRuleAtIndex(10).getDeclarationCount());
    assertEquals(2, aCSS.getStyleRuleAtIndex(11).getDeclarationCount());
    assertEquals(1, aCSS.getStyleRuleAtIndex(12).getDeclarationCount());
}
Also used : CascadingStyleSheet(com.helger.css.decl.CascadingStyleSheet) ECSSVersion(com.helger.css.ECSSVersion) Charset(java.nio.charset.Charset) File(java.io.File) Test(org.junit.Test)

Example 3 with ECSSVersion

use of com.helger.css.ECSSVersion in project ph-css by phax.

the class CSSReader30SpecialFuncTest method testReadExpressions.

@Test
public void testReadExpressions() {
    final ECSSVersion eVersion = ECSSVersion.CSS30;
    final CSSWriterSettings aCSSWS = new CSSWriterSettings(eVersion, false);
    final Charset aCharset = StandardCharsets.UTF_8;
    final File aFile = new File("src/test/resources/testfiles/css30/good/artificial/test-expression.css");
    final CascadingStyleSheet aCSS = CSSReader.readFromFile(aFile, aCharset, eVersion);
    assertNotNull(aCSS);
    assertEquals(1, aCSS.getRuleCount());
    assertEquals(1, aCSS.getStyleRuleCount());
    final CSSStyleRule aSR = aCSS.getStyleRuleAtIndex(0);
    assertEquals("div", aSR.getSelectorsAsCSSString(aCSSWS, 0));
    assertEquals(23, aSR.getDeclarationCount());
    int i = 0;
    for (final CSSDeclaration aDecl : aSR.getAllDeclarations()) {
        final String sExpectedName = Character.toString((char) ('a' + i));
        assertEquals(sExpectedName, aDecl.getProperty());
        ++i;
    }
    CSSDeclaration aDecl;
    ICSSExpressionMember aMember;
    // a: -5
    aDecl = aSR.getDeclarationOfPropertyName("a");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("-5", aMember.getAsCSSString(aCSSWS));
    // b: +5
    aDecl = aSR.getDeclarationOfPropertyName("b");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("+5", aMember.getAsCSSString(aCSSWS));
    // c: 5
    aDecl = aSR.getDeclarationOfPropertyName("c");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("5", aMember.getAsCSSString(aCSSWS));
    // d: -5.12
    aDecl = aSR.getDeclarationOfPropertyName("d");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("-5.12", aMember.getAsCSSString(aCSSWS));
    // e: +5.12
    aDecl = aSR.getDeclarationOfPropertyName("e");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("+5.12", aMember.getAsCSSString(aCSSWS));
    // f: 5.12
    aDecl = aSR.getDeclarationOfPropertyName("f");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("5.12", aMember.getAsCSSString(aCSSWS));
    // g: -5.12%
    aDecl = aSR.getDeclarationOfPropertyName("g");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("-5.12%", aMember.getAsCSSString(aCSSWS));
    // h: +5.12%
    aDecl = aSR.getDeclarationOfPropertyName("h");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("+5.12%", aMember.getAsCSSString(aCSSWS));
    // i: 5.12%
    aDecl = aSR.getDeclarationOfPropertyName("i");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("5.12%", aMember.getAsCSSString(aCSSWS));
    // j: -5px
    aDecl = aSR.getDeclarationOfPropertyName("j");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("-5px", aMember.getAsCSSString(aCSSWS));
    // k: +5px
    aDecl = aSR.getDeclarationOfPropertyName("k");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("+5px", aMember.getAsCSSString(aCSSWS));
    // l: 5px
    aDecl = aSR.getDeclarationOfPropertyName("l");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("5px", aMember.getAsCSSString(aCSSWS));
    // m: 'string1'
    aDecl = aSR.getDeclarationOfPropertyName("m");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("'string1'", aMember.getAsCSSString(aCSSWS));
    // n: "string2"
    aDecl = aSR.getDeclarationOfPropertyName("n");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("\"string2\"", aMember.getAsCSSString(aCSSWS));
    // o: abc
    aDecl = aSR.getDeclarationOfPropertyName("o");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("abc", aMember.getAsCSSString(aCSSWS));
    // p: from
    aDecl = aSR.getDeclarationOfPropertyName("p");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("from", aMember.getAsCSSString(aCSSWS));
    // q: to
    aDecl = aSR.getDeclarationOfPropertyName("q");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("to", aMember.getAsCSSString(aCSSWS));
    // r: url(a.gif)
    aDecl = aSR.getDeclarationOfPropertyName("r");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermURI);
    assertEquals("url(a.gif)", aMember.getAsCSSString(aCSSWS));
    // s: #123
    aDecl = aSR.getDeclarationOfPropertyName("s");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("#123", aMember.getAsCSSString(aCSSWS));
    // t: function(5,6,abc)
    aDecl = aSR.getDeclarationOfPropertyName("t");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberFunction);
    assertEquals("function", ((CSSExpressionMemberFunction) aMember).getFunctionName());
    // 3 parameters and 2 commas
    assertEquals(5, ((CSSExpressionMemberFunction) aMember).getExpression().getMemberCount());
    assertEquals("function(5,6,abc)", aMember.getAsCSSString(aCSSWS));
    // u: calc(4 + 5)
    aDecl = aSR.getDeclarationOfPropertyName("u");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberMath);
    // 2 values and 1 operator
    assertEquals(3, ((CSSExpressionMemberMath) aMember).getMemberCount());
    assertEquals("calc(4 + 5)", aMember.getAsCSSString(aCSSWS));
    // v: inherit
    aDecl = aSR.getDeclarationOfPropertyName("v");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("inherit", aMember.getAsCSSString(aCSSWS));
    // w: u+1234
    aDecl = aSR.getDeclarationOfPropertyName("w");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("u+1234", aMember.getAsCSSString(aCSSWS));
    // Write result
    final String sCSS = new CSSWriter(aCSSWS).getCSSAsString(aCSS);
    assertNotNull(sCSS);
    if (false)
        s_aLogger.info(sCSS);
}
Also used : CSSExpressionMemberTermURI(com.helger.css.decl.CSSExpressionMemberTermURI) ECSSVersion(com.helger.css.ECSSVersion) Charset(java.nio.charset.Charset) CSSExpressionMemberTermSimple(com.helger.css.decl.CSSExpressionMemberTermSimple) CSSWriter(com.helger.css.writer.CSSWriter) ICSSExpressionMember(com.helger.css.decl.ICSSExpressionMember) CSSWriterSettings(com.helger.css.writer.CSSWriterSettings) CascadingStyleSheet(com.helger.css.decl.CascadingStyleSheet) CSSStyleRule(com.helger.css.decl.CSSStyleRule) CSSExpressionMemberMath(com.helger.css.decl.CSSExpressionMemberMath) CSSDeclaration(com.helger.css.decl.CSSDeclaration) File(java.io.File) CSSExpressionMemberFunction(com.helger.css.decl.CSSExpressionMemberFunction) Test(org.junit.Test)

Example 4 with ECSSVersion

use of com.helger.css.ECSSVersion in project ph-css by phax.

the class CSSReader30FuncTest method testReadExpressions.

@Test
public void testReadExpressions() {
    final ECSSVersion eVersion = ECSSVersion.CSS30;
    final CSSWriterSettings aCSSWS = new CSSWriterSettings(eVersion, false);
    final Charset aCharset = StandardCharsets.UTF_8;
    final File aFile = new File("src/test/resources/testfiles/css30/good/artificial/test-expression.css");
    final CascadingStyleSheet aCSS = CSSReader.readFromFile(aFile, aCharset, eVersion);
    assertNotNull(aCSS);
    assertEquals(1, aCSS.getRuleCount());
    assertEquals(1, aCSS.getStyleRuleCount());
    final CSSStyleRule aSR = aCSS.getStyleRuleAtIndex(0);
    assertEquals("div", aSR.getSelectorsAsCSSString(aCSSWS, 0));
    assertEquals(23, aSR.getDeclarationCount());
    int i = 0;
    for (final CSSDeclaration aDecl : aSR.getAllDeclarations()) {
        final String sExpectedName = Character.toString((char) ('a' + i));
        assertEquals(sExpectedName, aDecl.getProperty());
        ++i;
    }
    CSSDeclaration aDecl;
    ICSSExpressionMember aMember;
    // a: -5
    aDecl = aSR.getDeclarationOfPropertyName("a");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("-5", aMember.getAsCSSString(aCSSWS));
    // b: +5
    aDecl = aSR.getDeclarationOfPropertyName("b");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("+5", aMember.getAsCSSString(aCSSWS));
    // c: 5
    aDecl = aSR.getDeclarationOfPropertyName("c");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("5", aMember.getAsCSSString(aCSSWS));
    // d: -5.12
    aDecl = aSR.getDeclarationOfPropertyName("d");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("-5.12", aMember.getAsCSSString(aCSSWS));
    // e: +5.12
    aDecl = aSR.getDeclarationOfPropertyName("e");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("+5.12", aMember.getAsCSSString(aCSSWS));
    // f: 5.12
    aDecl = aSR.getDeclarationOfPropertyName("f");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("5.12", aMember.getAsCSSString(aCSSWS));
    // g: -5.12%
    aDecl = aSR.getDeclarationOfPropertyName("g");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("-5.12%", aMember.getAsCSSString(aCSSWS));
    // h: +5.12%
    aDecl = aSR.getDeclarationOfPropertyName("h");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("+5.12%", aMember.getAsCSSString(aCSSWS));
    // i: 5.12%
    aDecl = aSR.getDeclarationOfPropertyName("i");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("5.12%", aMember.getAsCSSString(aCSSWS));
    // j: -5px
    aDecl = aSR.getDeclarationOfPropertyName("j");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("-5px", aMember.getAsCSSString(aCSSWS));
    // k: +5px
    aDecl = aSR.getDeclarationOfPropertyName("k");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("+5px", aMember.getAsCSSString(aCSSWS));
    // l: 5px
    aDecl = aSR.getDeclarationOfPropertyName("l");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("5px", aMember.getAsCSSString(aCSSWS));
    // m: 'string1'
    aDecl = aSR.getDeclarationOfPropertyName("m");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("'string1'", aMember.getAsCSSString(aCSSWS));
    // n: "string2"
    aDecl = aSR.getDeclarationOfPropertyName("n");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("\"string2\"", aMember.getAsCSSString(aCSSWS));
    // o: abc
    aDecl = aSR.getDeclarationOfPropertyName("o");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("abc", aMember.getAsCSSString(aCSSWS));
    // p: from
    aDecl = aSR.getDeclarationOfPropertyName("p");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("from", aMember.getAsCSSString(aCSSWS));
    // q: to
    aDecl = aSR.getDeclarationOfPropertyName("q");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("to", aMember.getAsCSSString(aCSSWS));
    // r: url(a.gif)
    aDecl = aSR.getDeclarationOfPropertyName("r");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermURI);
    assertEquals("url(a.gif)", aMember.getAsCSSString(aCSSWS));
    // s: #123
    aDecl = aSR.getDeclarationOfPropertyName("s");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("#123", aMember.getAsCSSString(aCSSWS));
    // t: function(5,6,abc)
    aDecl = aSR.getDeclarationOfPropertyName("t");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberFunction);
    assertEquals("function", ((CSSExpressionMemberFunction) aMember).getFunctionName());
    // 3 parameters and 2 commas
    assertEquals(5, ((CSSExpressionMemberFunction) aMember).getExpression().getMemberCount());
    assertEquals("function(5,6,abc)", aMember.getAsCSSString(aCSSWS));
    // u: calc(4 + 5)
    aDecl = aSR.getDeclarationOfPropertyName("u");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberMath);
    // 2 values and 1 operator
    assertEquals(3, ((CSSExpressionMemberMath) aMember).getMemberCount());
    assertEquals("calc(4 + 5)", aMember.getAsCSSString(aCSSWS));
    // v: inherit
    aDecl = aSR.getDeclarationOfPropertyName("v");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("inherit", aMember.getAsCSSString(aCSSWS));
    // w: u+1234
    aDecl = aSR.getDeclarationOfPropertyName("w");
    assertNotNull(aDecl);
    assertEquals(1, aDecl.getExpression().getMemberCount());
    aMember = aDecl.getExpression().getMemberAtIndex(0);
    assertTrue(aMember instanceof CSSExpressionMemberTermSimple);
    assertEquals("u+1234", aMember.getAsCSSString(aCSSWS));
    // Write result
    final String sCSS = new CSSWriter(aCSSWS).getCSSAsString(aCSS);
    assertNotNull(sCSS);
    if (false)
        m_aLogger.info(sCSS);
}
Also used : CSSExpressionMemberTermURI(com.helger.css.decl.CSSExpressionMemberTermURI) ECSSVersion(com.helger.css.ECSSVersion) Charset(java.nio.charset.Charset) CSSExpressionMemberTermSimple(com.helger.css.decl.CSSExpressionMemberTermSimple) CSSWriter(com.helger.css.writer.CSSWriter) ICSSExpressionMember(com.helger.css.decl.ICSSExpressionMember) CSSWriterSettings(com.helger.css.writer.CSSWriterSettings) CascadingStyleSheet(com.helger.css.decl.CascadingStyleSheet) CSSStyleRule(com.helger.css.decl.CSSStyleRule) CSSExpressionMemberMath(com.helger.css.decl.CSSExpressionMemberMath) CSSDeclaration(com.helger.css.decl.CSSDeclaration) File(java.io.File) CSSExpressionMemberFunction(com.helger.css.decl.CSSExpressionMemberFunction) Test(org.junit.Test)

Example 5 with ECSSVersion

use of com.helger.css.ECSSVersion in project ph-css by phax.

the class CSSReader30FuncTest method testReadSpecialGood.

@Test
public void testReadSpecialGood() {
    final ECSSVersion eVersion = ECSSVersion.CSS30;
    final Charset aCharset = StandardCharsets.UTF_8;
    final File aFile = new File("src/test/resources/testfiles/css30/good/artificial/hacks2.css");
    final CascadingStyleSheet aCSS = CSSReader.readFromFile(aFile, aCharset, eVersion);
    assertNotNull(aCSS);
    final String sCSS = new CSSWriter(eVersion, false).getCSSAsString(aCSS);
    assertNotNull(sCSS);
    if (false)
        m_aLogger.info(sCSS);
}
Also used : CascadingStyleSheet(com.helger.css.decl.CascadingStyleSheet) ECSSVersion(com.helger.css.ECSSVersion) Charset(java.nio.charset.Charset) CSSWriter(com.helger.css.writer.CSSWriter) File(java.io.File) Test(org.junit.Test)

Aggregations

ECSSVersion (com.helger.css.ECSSVersion)10 Charset (java.nio.charset.Charset)8 CascadingStyleSheet (com.helger.css.decl.CascadingStyleSheet)7 File (java.io.File)7 Test (org.junit.Test)7 CSSWriter (com.helger.css.writer.CSSWriter)5 ICSSParseExceptionCallback (com.helger.css.handler.ICSSParseExceptionCallback)3 CSSCharStream (com.helger.css.parser.CSSCharStream)3 CSSNode (com.helger.css.parser.CSSNode)3 ICSSInterpretErrorHandler (com.helger.css.reader.errorhandler.ICSSInterpretErrorHandler)3 ICSSParseErrorHandler (com.helger.css.reader.errorhandler.ICSSParseErrorHandler)3 Nullable (javax.annotation.Nullable)3 IHasReader (com.helger.commons.io.IHasReader)2 NonBlockingStringReader (com.helger.commons.io.stream.NonBlockingStringReader)2 CSSDeclaration (com.helger.css.decl.CSSDeclaration)2 CSSExpressionMemberFunction (com.helger.css.decl.CSSExpressionMemberFunction)2 CSSExpressionMemberMath (com.helger.css.decl.CSSExpressionMemberMath)2 CSSExpressionMemberTermSimple (com.helger.css.decl.CSSExpressionMemberTermSimple)2 CSSExpressionMemberTermURI (com.helger.css.decl.CSSExpressionMemberTermURI)2 CSSStyleRule (com.helger.css.decl.CSSStyleRule)2