From: <rb...@us...> - 2013-11-14 20:40:16
|
Revision: 8781 http://sourceforge.net/p/htmlunit/code/8781 Author: rbri Date: 2013-11-14 20:40:13 +0000 (Thu, 14 Nov 2013) Log Message: ----------- more cleanup Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserVersionFeaturesTest.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java 2013-11-14 07:34:03 UTC (rev 8780) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java 2013-11-14 20:40:13 UTC (rev 8781) @@ -209,11 +209,11 @@ EVENT_ONMOUSEDOWN_FOR_SELECT_OPTION_TRIGGERS_ADDITIONAL_DOWN_FOR_SELECT, /** Does not trigger "onmousedown" event handler for the select options. */ - @BrowserFeature({ @WebBrowser(IE), @WebBrowser(CHROME), @WebBrowser(value = FF, maxVersion = 3.6f) }) + @BrowserFeature({ @WebBrowser(IE), @WebBrowser(CHROME) }) EVENT_ONMOUSEDOWN_NOT_FOR_SELECT_OPTION, /** Does not trigger "onmousedown" event handler for the select options. */ - @BrowserFeature({ @WebBrowser(value = FF, maxVersion = 3.6f), @WebBrowser(IE), @WebBrowser(CHROME) }) + @BrowserFeature({ @WebBrowser(IE), @WebBrowser(CHROME) }) EVENT_ONMOUSEUP_FOR_SELECT_OPTION_TRIGGERS_ADDITIONAL_UP_FOR_SELECT, /** Does not trigger "onmouseup" event handler for the select options. */ @@ -469,7 +469,7 @@ HTMLBASEFONT_END_TAG_FORBIDDEN, /** Supports basefont. */ - @BrowserFeature({ @WebBrowser(IE), @WebBrowser(value = FF, maxVersion = 3.6f) }) + @BrowserFeature(@WebBrowser(IE)) HTMLBASEFONT_SUPPORTED, /** [object HTMLBGSoundElement]. */ @@ -605,7 +605,7 @@ HTML_COLOR_EXPAND_SHORT_HEX, /** Replace color names by their 6-digit hex color code. */ - @BrowserFeature({ @WebBrowser(value = IE, maxVersion = 8), @WebBrowser(value = FF, maxVersion = 3.6f) }) + @BrowserFeature(@WebBrowser(value = IE, maxVersion = 8)) HTML_COLOR_REPLACE_NAME_BY_HEX, /** Do not allow anything invalid in color, but restrict to valid values (names and hex digits) only. */ @@ -614,11 +614,11 @@ /** Do not allow anything invalid in color, but restrict to valid values (names and hex digits) only. * Fill up to 6 digits if shorter. */ - @BrowserFeature({ @WebBrowser(value = IE, maxVersion = 8), @WebBrowser(value = FF, maxVersion = 3.6f) }) + @BrowserFeature(@WebBrowser(value = IE, maxVersion = 8)) HTML_COLOR_RESTRICT_AND_FILL_UP, /** Convert the color (name and hex code) to lower case. */ - @BrowserFeature({ @WebBrowser(IE), @WebBrowser(value = FF, maxVersion = 3.6f) }) + @BrowserFeature(@WebBrowser(IE)) HTML_COLOR_TO_LOWER, /** HTMLCommentElement instead of Comment. */ @@ -653,7 +653,7 @@ /** Top scope constants can be assign (and are not... constants). */ - @BrowserFeature({ @WebBrowser(value = FF, maxVersion = 3.6f), @WebBrowser(value = IE, maxVersion = 9) }) + @BrowserFeature(@WebBrowser(value = IE, maxVersion = 9)) JS_ALLOW_CONST_ASSIGNMENT, /** @@ -755,7 +755,7 @@ JS_DOCTYPE_ENTITIES_EMPTY_STRING, /** Javascript doctyp.entities returns null (FF10). */ - @BrowserFeature({@WebBrowser(value = FF, maxVersion = 3.6f), @WebBrowser(value = IE, minVersion = 10) }) + @BrowserFeature(@WebBrowser(value = IE, minVersion = 10)) JS_DOCTYPE_ENTITIES_NULL, /** Javascript doctyp.notations returns an empty string (IE). */ @@ -763,7 +763,7 @@ JS_DOCTYPE_NOTATIONS_EMPTY_STRING, /** Javascript doctyp.notations returns null (FF10). */ - @BrowserFeature({@WebBrowser(value = FF, maxVersion = 3.6f), @WebBrowser(value = IE, minVersion = 10) }) + @BrowserFeature(@WebBrowser(value = IE, minVersion = 10)) JS_DOCTYPE_NOTATIONS_NULL, /** Javascript document.appendChild is allowed (IE). */ @@ -869,8 +869,7 @@ JS_FRAME_BODY_NULL_IF_NOT_LOADED, /** Indicates that the URL of parent window is used to resolve URLs in frames with javascript src. */ - @BrowserFeature({ @WebBrowser(value = IE, maxVersion = 6), - @WebBrowser(value = IE, minVersion = 8), @WebBrowser(FF), @WebBrowser(CHROME) }) + @BrowserFeature({ @WebBrowser(value = IE, minVersion = 8), @WebBrowser(FF), @WebBrowser(CHROME) }) JS_FRAME_RESOLVE_URL_WITH_PARENT_WINDOW, /** Indicates if Function.bind is available. */ Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserVersionFeaturesTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserVersionFeaturesTest.java 2013-11-14 07:34:03 UTC (rev 8780) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/BrowserVersionFeaturesTest.java 2013-11-14 20:40:13 UTC (rev 8781) @@ -17,6 +17,7 @@ import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.NONE; import static org.junit.Assert.fail; +import java.lang.reflect.Field; import java.util.LinkedList; import java.util.List; @@ -24,12 +25,15 @@ import org.junit.runner.RunWith; import com.gargoylesoftware.htmlunit.BrowserRunner.Browsers; +import com.gargoylesoftware.htmlunit.javascript.configuration.BrowserFeature; +import com.gargoylesoftware.htmlunit.javascript.configuration.WebBrowser; /** * Tests for {@link BrowserVersionFeatures}. * * @version $Revision$ * @author Ahmed Ashour + * @author Ronald Brill */ @RunWith(BrowserRunner.class) public class BrowserVersionFeaturesTest extends SimpleWebTestCase { @@ -53,10 +57,11 @@ /** * Test of alphabetical order. + * @throws Exception in case of problems */ @Test @Browsers(NONE) - public void unusedFeatures() { + public void unusedFeatures() throws Exception { final List<BrowserVersion> browsers = new LinkedList<BrowserVersion>(); browsers.add(BrowserVersion.FIREFOX_17); browsers.add(BrowserVersion.FIREFOX_24); @@ -75,5 +80,38 @@ } assertTrue("BrowserVersionFeatures.java: '" + feature.name() + "' in no longer in use.", inUse); } + + for (final BrowserVersionFeatures feature : BrowserVersionFeatures.values()) { + final Field field = BrowserVersionFeatures.class.getField(feature.name()); + final BrowserFeature browserFeature = field.getAnnotation(BrowserFeature.class); + + if (browserFeature != null) { + for (final WebBrowser annotatedBrowser : browserFeature.value()) { + boolean inUse = false; + for (BrowserVersion supportedBrowser : browsers) { + if (expectedBrowserName(supportedBrowser).equals(annotatedBrowser.value().name()) + && annotatedBrowser.minVersion() <= supportedBrowser.getBrowserVersionNumeric() + && annotatedBrowser.maxVersion() >= supportedBrowser.getBrowserVersionNumeric()) { + inUse = true; + continue; + } + } + assertTrue("BrowserVersionFeatures.java: Annotation '" + + annotatedBrowser.toString() + "' of feature '" + + feature.name() + "' in no longer in use.", inUse); + } + } + } } + + private String expectedBrowserName(final BrowserVersion browser) { + if (browser.isIE()) { + return "IE"; + } + if (browser.isFirefox()) { + return "FF"; + } + + return "CHROME"; + } } |