| /******************************************************************************* |
| * 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()); |
| } |
| } |