blob: a22eb8d684f42f9d2352bfdf774acc9207f4832d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2005 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 org.eclipse.wst.css.core.internal.provisional.document.ICSSDocument;
import org.eclipse.wst.css.core.internal.provisional.document.ICSSImportRule;
import org.eclipse.wst.css.core.internal.provisional.document.ICSSStyleSheet;
import org.w3c.dom.css.CSSImportRule;
import org.w3c.dom.css.CSSRule;
import org.w3c.dom.css.CSSRuleList;
import org.w3c.dom.css.CSSStyleSheet;
import org.w3c.dom.stylesheets.MediaList;
public class CSSImportRuleTest extends AbstractModelTest {
public void testInsertRuleDoubleQuote() {
checkInsert("@import \"dummy.css\";", "dummy.css", null);
}
public void testInsertRuleSingleQuote() {
checkInsert("@import \'dummy.css\';", "dummy.css", null);
}
public void testInsertRuleUrlNoQuote() {
checkInsert("@import url(dummy.css);", "dummy.css", null);
}
public void testInsertRuleUrlDoubleQuote() {
checkInsert("@import url(\"dummy.css\");", "dummy.css", null);
}
public void testInsertRuleUrlSingleQuote() {
checkInsert("@import url(\'dummy.css\');", "dummy.css", null);
}
public void testInsertRuleMedia1() {
checkInsert("@import url(\"dummy.css\") media1;", "dummy.css", new String[]{"media1"});
}
public void testInsertRuleMedia2() {
checkInsert("@import url(\'dummy.css\') media1, media2;", "dummy.css", new String[]{"media1", "media2"});
}
public void testCreateRule() {
ICSSStyleSheet sheet = getStyleSheet();
ICSSDocument doc = sheet;
ICSSImportRule newRule = doc.createCSSImportRule();
newRule.setHref("dummy.css");
MediaList newList = newRule.getMedia();
newList.appendMedium("media1");
newList.appendMedium("media2");
sheet.insertRuleBefore(newRule, null);
CSSRuleList ruleList = sheet.getCssRules();
CSSRule rule = ruleList.item(0);
assertTrue(rule instanceof CSSImportRule);
CSSImportRule importRule = (CSSImportRule) rule;
assertEquals("dummy.css", importRule.getHref());
MediaList mediaList = importRule.getMedia();
assertEquals(2, mediaList.getLength());
assertEquals("media1", mediaList.item(0));
assertEquals("media2", mediaList.item(1));
assertEquals("@import url(\"dummy.css\") media1, media2;", importRule.getCssText());
}
private void checkInsert(String ruleString, String href, String[] media) {
CSSStyleSheet sheet = getStyleSheet();
assertEquals(0, sheet.insertRule(ruleString, 0));
CSSRuleList ruleList = sheet.getCssRules();
CSSRule rule = ruleList.item(0);
assertTrue(rule instanceof CSSImportRule);
CSSImportRule importRule = (CSSImportRule) rule;
assertEquals(href, importRule.getHref());
if (media != null) {
assertEquals(media.length, importRule.getMedia().getLength());
for (int i = 0; i < media.length; i++) {
assertEquals(media[i], importRule.getMedia().item(i));
}
}
assertEquals(ruleString, importRule.getCssText());
}
}