String getLineDelimiter(ICSSNode node) {
    ICSSModel model = (node != null) ? node.getOwnerDocument().getModel() : null;
    return (model != null) ? model.getStructuredDocument().getLineDelimiter() : "\n"; // $NON-NLS-1$

    // TODO : check whether to use model.getLineDelimiter() or
    // model.getStructuredDocument().getLineDelimiter()
  }
  public void _testInsertText1() throws IOException {
    ICSSModel model = getModel();
    IStructuredDocument structuredDocument = model.getStructuredDocument();
    structuredDocument.set(
        FileUtil.createString(
            "src/org/eclipse/wst/css/core/tests/testfiles", "CSSFontFaceRuleTest.css"));

    CSSStyleSheet sheet = (CSSStyleSheet) model.getDocument();
    CSSRuleList ruleList = sheet.getCssRules();
    assertEquals(3, ruleList.getLength());

    CSSRule rule;
    CSSStyleDeclaration declaration;
    CSSValue value;
    CSSValueList valueList;

    // rule 1

    rule = ruleList.item(0);
    assertEquals(CSSRule.FONT_FACE_RULE, rule.getType());
    assertTrue(rule instanceof CSSFontFaceRule);

    declaration = ((CSSFontFaceRule) rule).getStyle();
    assertEquals(4, declaration.getLength());

    value = declaration.getPropertyCSSValue("font-family");
    checkPrimitiveString(value, new PrimitiveString(CSSPrimitiveValue.CSS_STRING, "Swiss 721"));

    value = declaration.getPropertyCSSValue("src");
    checkPrimitiveString(value, new PrimitiveString(CSSPrimitiveValue.CSS_URI, "swiss721blk.pfr"));

    value = declaration.getPropertyCSSValue("font-style");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(3, valueList.getLength());

    checkPrimitiveString(
        valueList.item(0), new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "normal"));
    checkPrimitiveString(valueList.item(1), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveString(
        valueList.item(2), new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "italic"));

    value = declaration.getPropertyCSSValue("font-weight");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(3, valueList.getLength());

    checkPrimitiveNumber(
        valueList.item(0), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 800));
    checkPrimitiveString(valueList.item(1), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveNumber(
        valueList.item(2), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 900));
  }
 /**
  * Insert the method's description here.
  *
  * @return org.eclipse.wst.css.core.internal.cleanup.CSSCleanupStrategy
  * @param node org.eclipse.wst.css.core.model.interfaces.ICSSNode
  */
 protected CSSCleanupStrategy getCleanupStrategy(ICSSNode node) {
   CSSCleanupStrategy currentStrategy = CSSCleanupStrategyImpl.getInstance();
   ICSSDocument doc = node.getOwnerDocument();
   if (doc == null) return currentStrategy;
   ICSSModel model = doc.getModel();
   if (model == null) return currentStrategy;
   if (model.getStyleSheetType() != ICSSModel.EXTERNAL) {
     // TODO - TRANSITION Nakamori-san, or Kit, how can we move to
     // "HTML" plugin?
     // can we subclass?
     // currentStrategy = CSSInHTMLCleanupStrategyImpl.getInstance();
   }
   return currentStrategy;
 }
  public void _testInsertText3() throws IOException {
    ICSSModel model = getModel();
    IStructuredDocument structuredDocument = model.getStructuredDocument();
    structuredDocument.set(
        FileUtil.createString(
            "src/org/eclipse/wst/css/core/tests/testfiles", "CSSFontFaceRuleTest.css"));

    CSSStyleSheet sheet = (CSSStyleSheet) model.getDocument();
    CSSRuleList ruleList = sheet.getCssRules();
    assertEquals(3, ruleList.getLength());

    CSSRule rule;
    CSSStyleDeclaration declaration;
    CSSValue value;
    CSSValueList valueList;

    // rule 3

    rule = ruleList.item(2);
    assertEquals(CSSRule.FONT_FACE_RULE, rule.getType());
    assertTrue(rule instanceof CSSFontFaceRule);

    declaration = ((CSSFontFaceRule) rule).getStyle();
    assertEquals(5, declaration.getLength());

    value = declaration.getPropertyCSSValue("src");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(4, valueList.getLength());

    checkPrimitiveString(
        valueList.item(0), new PrimitiveString(ICSSPrimitiveValue.CSS_LOCAL, "Alabama Italic"));
    checkPrimitiveString(valueList.item(1), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveString(
        valueList.item(2),
        new PrimitiveString(CSSPrimitiveValue.CSS_URI, "http://www.fonts.org/A/alabama-italic"));
    checkPrimitiveString(
        valueList.item(3), new PrimitiveString(ICSSPrimitiveValue.CSS_FORMAT, "truetype"));

    value = declaration.getPropertyCSSValue("panose-1");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(10, valueList.getLength());

    checkPrimitiveNumber(valueList.item(0), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 2));
    checkPrimitiveNumber(valueList.item(1), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 4));
    checkPrimitiveNumber(valueList.item(2), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 5));
    checkPrimitiveNumber(valueList.item(3), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 2));
    checkPrimitiveNumber(valueList.item(4), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 5));
    checkPrimitiveNumber(valueList.item(5), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 4));
    checkPrimitiveNumber(valueList.item(6), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 5));
    checkPrimitiveNumber(valueList.item(7), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 9));
    checkPrimitiveNumber(valueList.item(8), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 3));
    checkPrimitiveNumber(valueList.item(9), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 3));

    value = declaration.getPropertyCSSValue("font-family");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(3, valueList.getLength());

    checkPrimitiveString(
        valueList.item(0), new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "Alabama"));
    checkPrimitiveString(valueList.item(1), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveString(
        valueList.item(2), new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "serif"));

    value = declaration.getPropertyCSSValue("font-weight");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(5, valueList.getLength());

    checkPrimitiveNumber(
        valueList.item(0), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 300));
    checkPrimitiveString(valueList.item(1), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveNumber(
        valueList.item(2), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 400));
    checkPrimitiveString(valueList.item(3), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveNumber(
        valueList.item(4), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 500));

    value = declaration.getPropertyCSSValue("font-style");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(3, valueList.getLength());

    checkPrimitiveString(
        valueList.item(0), new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "italic"));
    checkPrimitiveString(valueList.item(1), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveString(
        valueList.item(2), new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "oblique"));
  }
  public void _testInsertText2() throws IOException {
    ICSSModel model = getModel();
    IStructuredDocument structuredDocument = model.getStructuredDocument();
    structuredDocument.set(
        FileUtil.createString(
            "src/org/eclipse/wst/css/core/tests/testfiles", "CSSFontFaceRuleTest.css"));

    CSSStyleSheet sheet = (CSSStyleSheet) model.getDocument();
    CSSRuleList ruleList = sheet.getCssRules();
    assertEquals(3, ruleList.getLength());

    CSSRule rule;
    CSSStyleDeclaration declaration;
    CSSValue value;
    CSSValueList valueList;

    // rule 2

    rule = ruleList.item(1);
    assertEquals(CSSRule.FONT_FACE_RULE, rule.getType());
    assertTrue(rule instanceof CSSFontFaceRule);

    declaration = ((CSSFontFaceRule) rule).getStyle();
    assertEquals(6, declaration.getLength());

    value = declaration.getPropertyCSSValue("src");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(9, valueList.getLength());

    checkPrimitiveString(
        valueList.item(0), new PrimitiveString(ICSSPrimitiveValue.CSS_LOCAL, "Palatino"));
    checkPrimitiveString(valueList.item(1), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveString(
        valueList.item(2), new PrimitiveString(ICSSPrimitiveValue.CSS_LOCAL, "Times New Roman"));
    checkPrimitiveString(valueList.item(3), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveString(
        valueList.item(4), new PrimitiveString(ICSSPrimitiveValue.CSS_LOCAL, "New York"));
    checkPrimitiveString(valueList.item(5), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveString(
        valueList.item(6), new PrimitiveString(ICSSPrimitiveValue.CSS_LOCAL, "Utopia"));
    checkPrimitiveString(valueList.item(7), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveString(
        valueList.item(8),
        new PrimitiveString(CSSPrimitiveValue.CSS_URI, "http://somewhere/free/font"));

    value = declaration.getPropertyCSSValue("font-family");
    checkPrimitiveString(value, new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "serif"));

    value = declaration.getPropertyCSSValue("font-weight");
    assertTrue(value instanceof CSSValueList);

    valueList = (CSSValueList) value;
    assertEquals(9, valueList.getLength());

    checkPrimitiveNumber(
        valueList.item(0), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 100));
    checkPrimitiveString(valueList.item(1), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveNumber(
        valueList.item(2), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 200));
    checkPrimitiveString(valueList.item(3), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveNumber(
        valueList.item(4), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 300));
    checkPrimitiveString(valueList.item(5), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveNumber(
        valueList.item(6), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 400));
    checkPrimitiveString(valueList.item(7), new PrimitiveString(ICSSPrimitiveValue.CSS_COMMA, ","));
    checkPrimitiveNumber(
        valueList.item(8), new PrimitiveNumber(ICSSPrimitiveValue.CSS_INTEGER, 500));

    value = declaration.getPropertyCSSValue("font-style");
    checkPrimitiveString(value, new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "normal"));

    value = declaration.getPropertyCSSValue("font-variant");
    checkPrimitiveString(value, new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "normal"));

    value = declaration.getPropertyCSSValue("font-size");
    checkPrimitiveString(value, new PrimitiveString(CSSPrimitiveValue.CSS_IDENT, "all"));
  }