| /******************************************************************************* |
| * Copyright (c) 2004, 2006 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.wst.css.core.tests.model; |
| |
| import java.io.IOException; |
| |
| import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel; |
| import org.eclipse.wst.css.core.internal.provisional.document.ICSSPrimitiveValue; |
| import org.eclipse.wst.css.core.tests.util.FileUtil; |
| import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument; |
| import org.w3c.dom.css.CSSPrimitiveValue; |
| import org.w3c.dom.css.CSSRule; |
| import org.w3c.dom.css.CSSRuleList; |
| import org.w3c.dom.css.CSSStyleDeclaration; |
| import org.w3c.dom.css.CSSStyleRule; |
| import org.w3c.dom.css.CSSStyleSheet; |
| import org.w3c.dom.css.CSSValue; |
| |
| public class CSSStyleRuleTest extends AbstractModelTest { |
| public void testInsertTextNumbers() throws IOException { |
| ICSSModel model = getModel(); |
| IStructuredDocument structuredDocument = model.getStructuredDocument(); |
| structuredDocument.set(FileUtil.createString("src/org/eclipse/wst/css/core/tests/testfiles", "CSSStyleRuleTest.css")); |
| |
| CSSStyleSheet sheet = (CSSStyleSheet) model.getDocument(); |
| CSSRuleList ruleList = sheet.getCssRules(); |
| assertEquals(3, ruleList.getLength()); |
| |
| CSSRule rule; |
| CSSStyleDeclaration declaration; |
| CSSValue value; |
| |
| rule = ruleList.item(0); |
| assertEquals(CSSRule.STYLE_RULE, rule.getType()); |
| assertTrue(rule instanceof CSSStyleRule); |
| |
| declaration = ((CSSStyleRule) rule).getStyle(); |
| assertEquals(20, declaration.getLength()); |
| |
| // 01 |
| value = declaration.getPropertyCSSValue("NUMBER"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_NUMBER, 123.456f)); |
| |
| // 02 |
| value = declaration.getPropertyCSSValue("PERCENTAGE"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_PERCENTAGE, 123.456f)); |
| |
| // 03 |
| value = declaration.getPropertyCSSValue("EMS"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_EMS, 123.456f)); |
| |
| // 04 |
| value = declaration.getPropertyCSSValue("EXS"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_EXS, 123.456f)); |
| |
| // 05 |
| value = declaration.getPropertyCSSValue("PX"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_PX, +123.456f)); |
| value = declaration.getPropertyCSSValue("PX2"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_PX, -123f)); |
| |
| |
| |
| // 06 |
| value = declaration.getPropertyCSSValue("CM"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_CM, 123.456f)); |
| |
| // 07 |
| value = declaration.getPropertyCSSValue("MM"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_MM, 123.456f)); |
| |
| // 08 |
| value = declaration.getPropertyCSSValue("IN"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_IN, 123.456f)); |
| |
| // 09 |
| value = declaration.getPropertyCSSValue("PT"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_PT, 123.456f)); |
| |
| // 10 |
| value = declaration.getPropertyCSSValue("PC"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_PC, 123.456f)); |
| |
| // 11 |
| value = declaration.getPropertyCSSValue("DEG"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_DEG, -123.456f)); |
| |
| // 12 |
| value = declaration.getPropertyCSSValue("RAD"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_RAD, 123.456f)); |
| |
| // 13 |
| value = declaration.getPropertyCSSValue("GRAD"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_GRAD, 123.456f)); |
| |
| // 14 |
| value = declaration.getPropertyCSSValue("MS"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_MS, 123.456f)); |
| |
| // 15 |
| value = declaration.getPropertyCSSValue("S"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_S, 123.456f)); |
| |
| // 16 |
| value = declaration.getPropertyCSSValue("HZ"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_HZ, 123.456f)); |
| |
| // 17 |
| value = declaration.getPropertyCSSValue("KHZ"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_KHZ, 123.456f)); |
| |
| // 18 |
| value = declaration.getPropertyCSSValue("DIMENSION"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(CSSPrimitiveValue.CSS_DIMENSION, -123.456f)); |
| |
| // 19 |
| value = declaration.getPropertyCSSValue("INTEGER"); |
| checkPrimitiveNumber(value, new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 123)); |
| } |
| |
| public void testInsertTextStrings() throws IOException { |
| ICSSModel model = getModel(); |
| IStructuredDocument structuredDocument = model.getStructuredDocument(); |
| structuredDocument.set(FileUtil.createString("src/org/eclipse/wst/css/core/tests/testfiles", "CSSStyleRuleTest.css")); |
| |
| CSSStyleSheet sheet = (CSSStyleSheet) model.getDocument(); |
| CSSRuleList ruleList = sheet.getCssRules(); |
| assertEquals(3, ruleList.getLength()); |
| |
| CSSRule rule; |
| CSSStyleDeclaration declaration; |
| CSSValue value; |
| |
| rule = ruleList.item(1); |
| assertEquals(CSSRule.STYLE_RULE, rule.getType()); |
| assertTrue(rule instanceof CSSStyleRule); |
| |
| declaration = ((CSSStyleRule) rule).getStyle(); |
| assertEquals(11, declaration.getLength()); |
| |
| // 01 |
| value = declaration.getPropertyCSSValue("STRING"); |
| checkPrimitiveString(value, new PrimitiveString(CSSPrimitiveValue.CSS_STRING, "string")); |
| |
| // 02 |
| value = declaration.getPropertyCSSValue("URI"); |
| checkPrimitiveString(value, new PrimitiveString(CSSPrimitiveValue.CSS_URI, "http://www.ibm.com/")); |
| |
| // 03 |
| value = declaration.getPropertyCSSValue("IDENT"); |
| checkPrimitiveString(value, new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "left")); |
| |
| // 04 |
| value = declaration.getPropertyCSSValue("HASH"); |
| checkPrimitiveString(value, new PrimitiveString(ICSSPrimitiveValue.CSS_HASH, "#abcdef")); |
| |
| // 05 |
| value = declaration.getPropertyCSSValue("URANGE"); |
| checkPrimitiveString(value, new PrimitiveString(ICSSPrimitiveValue.CSS_URANGE, "U+20A7")); |
| |
| // 06 |
| value = declaration.getPropertyCSSValue("SLASH"); |
| checkPrimitiveString(value, new PrimitiveString(ICSSPrimitiveValue.CSS_SLASH, "/")); |
| |
| // 07 |
| value = declaration.getPropertyCSSValue("COMMA"); |
| checkPrimitiveString(value, new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ",")); |
| |
| // 08 |
| value = declaration.getPropertyCSSValue("INHERIT_PRIMITIVE"); |
| checkPrimitiveString(value, new PrimitiveString(ICSSPrimitiveValue.CSS_INHERIT_PRIMITIVE, "inherit")); |
| |
| // 09 |
| value = declaration.getPropertyCSSValue("ATTR"); |
| checkPrimitiveString(value, new PrimitiveString(CSSPrimitiveValue.CSS_ATTR, "KEY")); |
| |
| // 10 |
| value = declaration.getPropertyCSSValue("FORMAT"); |
| checkPrimitiveString(value, new PrimitiveString(ICSSPrimitiveValue.CSS_FORMAT, "truedoc")); |
| |
| // 11 |
| value = declaration.getPropertyCSSValue("LOCAL"); |
| checkPrimitiveString(value, new PrimitiveString(ICSSPrimitiveValue.CSS_LOCAL, "Excelsior Roman")); |
| } |
| |
| public void testInsertTextFunctions() throws IOException { |
| ICSSModel model = getModel(); |
| IStructuredDocument structuredDocument = model.getStructuredDocument(); |
| structuredDocument.set(FileUtil.createString("src/org/eclipse/wst/css/core/tests/testfiles", "CSSStyleRuleTest.css")); |
| |
| CSSStyleSheet sheet = (CSSStyleSheet) model.getDocument(); |
| CSSRuleList ruleList = sheet.getCssRules(); |
| assertEquals(3, ruleList.getLength()); |
| |
| CSSRule rule; |
| CSSStyleDeclaration declaration; |
| CSSValue value; |
| |
| rule = ruleList.item(2); |
| assertEquals(CSSRule.STYLE_RULE, rule.getType()); |
| assertTrue(rule instanceof CSSStyleRule); |
| |
| declaration = ((CSSStyleRule) rule).getStyle(); |
| assertEquals(3, declaration.getLength()); |
| |
| value = declaration.getPropertyCSSValue("COUNTER"); |
| checkPrimitiveCounter(value, "par-num", "upper-roman", null); |
| |
| value = declaration.getPropertyCSSValue("RECT"); |
| checkPrimitiveRect(value, new Object[]{new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 12), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 34), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 56), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 78)}); |
| |
| value = declaration.getPropertyCSSValue("RGBCOLOR"); |
| checkPrimitiveRgb(value, new Object[]{new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 255), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 128), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 0)}); |
| } |
| |
| } |