summaryrefslogtreecommitdiffstats
path: root/dom/plugins/test/mochitest/test_propertyAndMethod.html
diff options
context:
space:
mode:
Diffstat (limited to 'dom/plugins/test/mochitest/test_propertyAndMethod.html')
-rw-r--r--dom/plugins/test/mochitest/test_propertyAndMethod.html51
1 files changed, 51 insertions, 0 deletions
diff --git a/dom/plugins/test/mochitest/test_propertyAndMethod.html b/dom/plugins/test/mochitest/test_propertyAndMethod.html
new file mode 100644
index 000000000..6e638e419
--- /dev/null
+++ b/dom/plugins/test/mochitest/test_propertyAndMethod.html
@@ -0,0 +1,51 @@
+<html>
+ <head>
+ <title>NPObject with property and method with the same name</title>
+
+ <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
+ <script type="text/javascript" src="plugin-utils.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
+ </head>
+
+ <body onload="run()">
+
+ <script class="testbody" type="application/javascript">
+ if (typeof Object.getPrototypeOf !== "function") {
+ if (typeof "test".__proto__ === "object") {
+ Object.getPrototypeOf = function(object) {
+ return object.__proto__;
+ };
+ } else {
+ Object.getPrototypeOf = function(object) {
+ // May break if the constructor has been tampered with
+ return object.constructor.prototype;
+ };
+ }
+ }
+
+ SimpleTest.waitForExplicitFinish();
+ setTestPluginEnabledState(SpecialPowers.Ci.nsIPluginTag.STATE_ENABLED);
+
+ function run() {
+ var plugin = document.getElementById("plugin");
+ var pluginProto = Object.getPrototypeOf(plugin);
+
+ delete pluginProto.propertyAndMethod;
+ ok(isNaN(plugin.propertyAndMethod + 0), "Shouldn't be set yet!");
+
+ plugin.propertyAndMethod = 5;
+ is(+plugin.propertyAndMethod, 5, "Should be set to 5!");
+
+ delete pluginProto.propertyAndMethod;
+ ok(isNaN(plugin.propertyAndMethod + 0), "Shouldn't be set any more!");
+
+ var res = plugin.propertyAndMethod();
+ is(res, 5, "Method invocation should return 5!");
+
+ SimpleTest.finish();
+ }
+ </script>
+
+ <embed id="plugin" type="application/x-test" wmode="window"></embed>
+ </body>
+</html>