blob: 7adc2dba7b4305202adb76c42ba534519d5132e0 [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 junit.framework.TestCase;
import org.eclipse.wst.css.core.internal.encoding.CSSDocumentLoader;
import org.eclipse.wst.css.core.internal.parser.CSSSourceParser;
import org.eclipse.wst.css.core.internal.provisional.document.ICSSModel;
import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleDeclaration;
import org.eclipse.wst.css.core.internal.util.CSSStyleDeclarationFactory;
import org.eclipse.wst.css.core.internal.util.declaration.CSSPropertyContext;
import org.eclipse.wst.css.core.tests.util.FileUtil;
import org.eclipse.wst.sse.core.internal.document.IDocumentLoader;
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocument;
import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocumentRegion;
public class TestCSSDecl extends TestCase {
public void testDecl() {
CSSPropertyContext context = new CSSPropertyContext();
ICSSStyleDeclaration decl = CSSStyleDeclarationFactory.getInstance().createStyleDeclaration();
context.initialize(decl);
decl.setCssText(getString() != null ? getString() : "");//$NON-NLS-1$
}
private String getString() {
return "body {}";
}
public void testCSSStyleDeclItem() {
String value = "color: blue;";
IDocumentLoader loader = new CSSDocumentLoader();
IStructuredDocument sharedStructuredDocument = (IStructuredDocument) loader.createNewStructuredDocument();
((CSSSourceParser) sharedStructuredDocument.getParser()).setParserMode(CSSSourceParser.MODE_DECLARATION_VALUE);
sharedStructuredDocument.set(value);
IStructuredDocumentRegion region = sharedStructuredDocument.getFirstStructuredDocumentRegion();
assertNotNull(region);
}
public void testCSSStyleDeclItemMODE_DECLARATION() {
String value = "color: blue;";
IDocumentLoader loader = new CSSDocumentLoader();
IStructuredDocument sharedStructuredDocument = (IStructuredDocument) loader.createNewStructuredDocument();
((CSSSourceParser) sharedStructuredDocument.getParser()).setParserMode(CSSSourceParser.MODE_DECLARATION);
sharedStructuredDocument.set(value);
IStructuredDocumentRegion region = sharedStructuredDocument.getFirstStructuredDocumentRegion();
assertNotNull(region);
}
public void testCSSStyleDeclItemSTYLE_SHEET() {
String value = "color: blue;";
IDocumentLoader loader = new CSSDocumentLoader();
IStructuredDocument sharedStructuredDocument = (IStructuredDocument) loader.createNewStructuredDocument();
((CSSSourceParser) sharedStructuredDocument.getParser()).setParserMode(CSSSourceParser.MODE_STYLESHEET);
sharedStructuredDocument.set(value);
IStructuredDocumentRegion region = sharedStructuredDocument.getFirstStructuredDocumentRegion();
assertNotNull(region);
}
public void testCSSModel() {
ICSSModel model = FileUtil.createModel();
try {
IStructuredDocument structuredDocument = model.getStructuredDocument();
structuredDocument.set(getHTMLDocumentText());
IStructuredDocumentRegion region = structuredDocument.getFirstStructuredDocumentRegion();
assertNotNull(region);
}
finally {
if (model != null) {
model.releaseFromEdit();
}
}
}
private String getHTMLDocumentText() {
String text = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n" +
"<HTML><HEAD>\r\n" +
"<META http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\r\n" +
"<META http-equiv=\"Content-Style-Type\" content=\"text/css\">\r\n" +
"<TITLE></TITLE>\r\n" +
"<STYLE type=\"text/css\">\r\n" +
"<!--\r\n" +
"BODY{\r\n" +
" color : teal;\r\n" +
" background-color: #FFFF99;\r\n" +
"}\r\n" +
"H1{\r\n" +
" color : teal;\r\n" +
" text-align: center;\r\n" +
" padding-top: 10px;\r\n" +
" padding-right: 0px;\r\n" +
" padding-bottom: 10px;\r\n" +
" padding-left: 0px;\r\n" +
" border-top-style : solid;\r\n" +
" border-top-color : teal;\r\n" +
"}\r\n" +
"H2{\r\n" +
" color : teal;\r\n" +
" text-align: center;\r\n" +
" padding-top: 7px;\r\n" +
" padding-right: 0px;\r\n" +
" padding-bottom: 7px;\r\n" +
" padding-left: 0px;\r\n" +
" border-top-style : solid;\r\n" +
" border-top-color : teal;\r\n" +
"}\r\n" +
"H3{\r\n" +
" color : teal;\r\n" +
" text-align: center;\r\n" +
" padding-top: 4px;\r\n" +
" padding-right: 0px;\r\n" +
" padding-bottom: 4px;\r\n" +
" padding-left: 0px;\r\n" +
" border-top-style : solid;\r\n" +
" border-top-color : teal;\r\n" +
"}\r\n" +
"HR{\r\n" +
" color : teal;\r\n" +
" height: 3px;\r\n" +
"}\r\n" +
"P{\r\n" +
" color : teal;\r\n" +
"}\r\n" +
"TH{\r\n" +
" color: #FFFFCC;\r\n" +
" background-color : teal;\r\n" +
"}\r\n" +
"TD{\r\n" +
" color : black;\r\n" +
" background-color : white;\r\n" +
"}\r\n" +
"-->\r\n" +
"</STYLE>\r\n" +
"</HEAD><BODY>\r\n" +
"<H1>Heading 1 Heading 1</H1>\r\n" +
"<H2>Heading 2 Heading 2</H2>\r\n" +
"<H3>Heading 3 Heading 3</H3>\r\n" +
"<HR>\r\n" +
"<P>Normal Text</P>\r\n" +
"<P style=\"color : white; background-color : teal;\">Normal Text with inline style</P>\r\n" +
"<HR>\r\n" +
"<TABLE border=\"1\">\r\n" +
" <TBODY>\r\n" +
" <TR>\r\n" +
" <TH colspan=\"3\">Header Cell of Table</TH>\r\n" +
" </TR>\r\n" +
" <TR>\r\n" +
" <TD>Data Cell of Table</TD>\r\n" +
" <TD>Data Cell of Table</TD>\r\n" +
" <TD>Data Cell of Table</TD>\r\n" +
" </TR>\r\n" +
" <TR>\r\n" +
" <TD>Data Cell of Table</TD>\r\n" +
" <TD>Data Cell of Table</TD>\r\n" +
" <TD>Data Cell of Table</TD>\r\n" +
" </TR>\r\n" +
" </TBODY>\r\n" +
"</TABLE>\r\n" +
"</BODY></HTML>";
return text;
}
}