From: <rb...@us...> - 2017-12-14 07:21:59
|
Revision: 15008 http://sourceforge.net/p/htmlunit/code/15008 Author: rbri Date: 2017-12-14 07:21:56 +0000 (Thu, 14 Dec 2017) Log Message: ----------- Crypto.subtle added Modified Paths: -------------- trunk/htmlunit/src/changes/changes.xml trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/crypto/Crypto.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/crypto/SubtleCrypto.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/crypto/CryptoTest.java Modified: trunk/htmlunit/src/changes/changes.xml =================================================================== --- trunk/htmlunit/src/changes/changes.xml 2017-12-13 21:33:09 UTC (rev 15007) +++ trunk/htmlunit/src/changes/changes.xml 2017-12-14 07:21:56 UTC (rev 15008) @@ -8,6 +8,9 @@ <body> <release version="2.29" date="xx, 2017" description="Bugfixes, WebStart support"> + <action type="add" dev="rbri" issue="1936"> + JavaScript: Crypto.subtle added + </action> <action type="add" dev="rbri"> WebClient.setWebStartHandler() and the interface WebStartHandler added. Create your implementation of this interface to support WebStart links. Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/crypto/Crypto.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/crypto/Crypto.java 2017-12-13 21:33:09 UTC (rev 15007) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/crypto/Crypto.java 2017-12-14 07:21:56 UTC (rev 15008) @@ -24,6 +24,7 @@ import com.gargoylesoftware.htmlunit.javascript.configuration.JsxClass; import com.gargoylesoftware.htmlunit.javascript.configuration.JsxConstructor; import com.gargoylesoftware.htmlunit.javascript.configuration.JsxFunction; +import com.gargoylesoftware.htmlunit.javascript.configuration.JsxGetter; import com.gargoylesoftware.htmlunit.javascript.host.Window; import com.gargoylesoftware.htmlunit.javascript.host.arrays.ArrayBufferViewBase; @@ -34,6 +35,7 @@ * * @author Ahmed Ashour * @author Marc Guillemot + * @author Ronald Brill */ @JsxClass public class Crypto extends SimpleScriptable { @@ -70,4 +72,17 @@ array.put(i, array, random.nextInt()); } } + + /** + * Returns the {@code subtle} property. + * @return the {@code stuble} property + */ + @JsxGetter({CHROME, FF}) + public SubtleCrypto getSubtle() { + final SubtleCrypto stuble = new SubtleCrypto(); + final Window window = getWindow(); + stuble.setParentScope(window); + stuble.setPrototype(window.getPrototype(SubtleCrypto.class)); + return stuble; + } } Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/crypto/SubtleCrypto.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/crypto/SubtleCrypto.java 2017-12-13 21:33:09 UTC (rev 15007) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/crypto/SubtleCrypto.java 2017-12-14 07:21:56 UTC (rev 15008) @@ -26,6 +26,7 @@ * A JavaScript object for {@code SubtleCrypto}. * * @author Ahmed Ashour + * @author Ronald Brill */ @JsxClass public class SubtleCrypto extends SimpleScriptable { Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/crypto/CryptoTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/crypto/CryptoTest.java 2017-12-13 21:33:09 UTC (rev 15007) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/crypto/CryptoTest.java 2017-12-14 07:21:56 UTC (rev 15008) @@ -25,6 +25,7 @@ * Tests for {@link Crypto}. * * @author Marc Guillemot + * @author Ronald Brill */ @RunWith(BrowserRunner.class) public class CryptoTest extends WebDriverTestCase { @@ -48,4 +49,21 @@ loadPageWithAlerts2(html); } + + /** + * @throws Exception if the test fails + */ + @Test + @Alerts(DEFAULT = "[object SubtleCrypto]", + IE = "exception") + public void subtle() throws Exception { + final String html = "<html><head><script>\n" + + "try {\n" + + " alert(window.crypto.subtle);\n" + + "}\n" + + "catch(e) { alert('exception'); }\n" + + "</script></head></html>"; + + loadPageWithAlerts2(html); + } } |