123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- /*
- * Copyright 2000-2013 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
- package com.vaadin.sass.testcases.scss;
-
- import java.io.IOException;
- import java.net.URISyntaxException;
-
- import org.junit.Assert;
- import org.junit.Test;
- import org.w3c.css.sac.CSSException;
- import org.w3c.css.sac.LexicalUnit;
-
- import com.vaadin.sass.AbstractTestBase;
- import com.vaadin.sass.internal.ScssStylesheet;
- import com.vaadin.sass.internal.handler.SCSSDocumentHandler;
- import com.vaadin.sass.internal.handler.SCSSDocumentHandlerImpl;
- import com.vaadin.sass.internal.parser.LexicalUnitImpl;
- import com.vaadin.sass.internal.parser.Parser;
- import com.vaadin.sass.internal.tree.BlockNode;
- import com.vaadin.sass.internal.tree.MixinDefNode;
- import com.vaadin.sass.internal.tree.MixinNode;
-
- public class Mixins extends AbstractTestBase {
-
- String scss = "/scss/mixins.scss";
- String css = "/css/mixins.css";
-
- @Test
- public void testParser() throws CSSException, URISyntaxException,
- IOException {
- Parser parser = new Parser();
- SCSSDocumentHandler handler = new SCSSDocumentHandlerImpl();
- parser.setDocumentHandler(handler);
- parser.parseStyleSheet(getClass().getResource(scss).getPath());
- ScssStylesheet root = handler.getStyleSheet();
-
- MixinDefNode mixinDefNode0 = (MixinDefNode) root.getChildren().get(0);
- Assert.assertEquals("font-settings", mixinDefNode0.getName());
- Assert.assertTrue(mixinDefNode0.getArglist().isEmpty());
- Assert.assertEquals(3, mixinDefNode0.getChildren().size());
-
- MixinDefNode mixinDefNode1 = (MixinDefNode) root.getChildren().get(1);
- Assert.assertEquals("rounded-borders", mixinDefNode1.getName());
- Assert.assertEquals(2, mixinDefNode1.getArglist().size());
- Assert.assertEquals("thickness", mixinDefNode1.getArglist().get(0)
- .getName());
- Assert.assertEquals("radius", mixinDefNode1.getArglist().get(1)
- .getName());
- Assert.assertEquals(LexicalUnit.SAC_PIXEL, mixinDefNode1.getArglist()
- .get(1).getExpr().getLexicalUnitType());
- Assert.assertEquals(3f, mixinDefNode1.getArglist().get(1).getExpr()
- .getFloatValue(), 0f);
-
- Assert.assertEquals(4, mixinDefNode1.getChildren().size());
-
- BlockNode mainBlockNode = (BlockNode) root.getChildren().get(3);
- Assert.assertEquals(3, mainBlockNode.getChildren().size());
- MixinNode mixinNode0MainBlock = (MixinNode) mainBlockNode.getChildren()
- .get(0);
- Assert.assertEquals("rounded-borders", mixinNode0MainBlock.getName());
- Assert.assertEquals("mixinVar", mixinNode0MainBlock.getArglist().get(0)
- .getStringValue());
- Assert.assertEquals(LexicalUnitImpl.SCSS_VARIABLE, mixinNode0MainBlock
- .getArglist().get(0).getLexicalUnitType());
- MixinNode mixinNOde1MainBlock = (MixinNode) mainBlockNode.getChildren()
- .get(1);
- Assert.assertEquals("font-settings", mixinNOde1MainBlock.getName());
- Assert.assertTrue(mixinNOde1MainBlock.getArglist().isEmpty());
-
- MixinNode mixinNOde2MainBlock = (MixinNode) mainBlockNode.getChildren()
- .get(2);
- Assert.assertEquals("main-details", mixinNOde2MainBlock.getName());
- Assert.assertTrue(mixinNOde1MainBlock.getArglist().isEmpty());
-
- MixinNode mixinNode1MainBlock = (MixinNode) mainBlockNode.getChildren()
- .get(1);
- Assert.assertTrue(mixinNode1MainBlock.getArglist().isEmpty());
-
- BlockNode footerBlockNode = (BlockNode) root.getChildren().get(3);
- MixinNode mixinNodeFooterBlock = (MixinNode) footerBlockNode
- .getChildren().get(0);
- Assert.assertEquals("mixinVar", mixinNodeFooterBlock.getArglist()
- .get(0).getStringValue());
-
- Assert.assertTrue(root.getChildren().get(0) instanceof MixinDefNode);
- Assert.assertTrue(root.getChildren().get(1) instanceof MixinDefNode);
- Assert.assertTrue(root.getChildren().get(5) instanceof MixinDefNode);
- Assert.assertTrue(root.getChildren().get(6) instanceof MixinDefNode);
- Assert.assertTrue(root.getChildren().get(8) instanceof MixinDefNode);
- Assert.assertTrue(root.getChildren().get(9) instanceof MixinNode);
- }
-
- @Test
- public void testCompiler() throws Exception {
- testCompiler(scss, css);
- }
-
- }
|