blob: ee8d938c8d06a164351e89a963764e8a7cb91186 [file] [log] [blame]
/*****************************************************************************
* Copyright (c) 2004 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(19, 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));
// 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)});
}
}