aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-06-09 17:12:43 -0600
committerbors-servo <metajack+bors@gmail.com>2015-06-09 17:12:43 -0600
commit44a4b7886d05b6e219f71f958d913657b08eea7d (patch)
treedcbef7faa06b06d8d37058e86e92da13a48c321e
parent8236221acf0f23f2217bf8b2346411396bd04f3c (diff)
parent4ada1e942185a59fc8238be8badc22ab56c36780 (diff)
downloadservo-44a4b7886d05b6e219f71f958d913657b08eea7d.tar.gz
servo-44a4b7886d05b6e219f71f958d913657b08eea7d.zip
Auto merge of #6284 - fbau123:6242-testbinding-add-specialoperations, r=nox
<!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6284) <!-- Reviewable:end -->
-rw-r--r--components/script/dom/mod.rs1
-rw-r--r--components/script/dom/testbinding.rs5
-rw-r--r--components/script/dom/testbindingproxy.rs31
-rw-r--r--components/script/dom/webidls/TestBindingProxy.webidl25
-rw-r--r--tests/wpt/mozilla/tests/mozilla/interfaces.html1
5 files changed, 60 insertions, 3 deletions
diff --git a/components/script/dom/mod.rs b/components/script/dom/mod.rs
index b0f1c5257b1..0549cca737b 100644
--- a/components/script/dom/mod.rs
+++ b/components/script/dom/mod.rs
@@ -346,3 +346,4 @@ pub mod xmlhttprequesteventtarget;
pub mod xmlhttprequestupload;
pub mod testbinding;
+pub mod testbindingproxy;
diff --git a/components/script/dom/testbinding.rs b/components/script/dom/testbinding.rs
index e06880292b2..c0379d6eac7 100644
--- a/components/script/dom/testbinding.rs
+++ b/components/script/dom/testbinding.rs
@@ -16,7 +16,7 @@ use dom::bindings::global::{GlobalField, GlobalRef};
use dom::bindings::js::{JSRef, Temporary};
use dom::bindings::num::Finite;
use dom::bindings::str::{ByteString, USVString};
-use dom::bindings::utils::{Reflector, Reflectable};
+use dom::bindings::utils::Reflector;
use dom::blob::Blob;
use util::str::DOMString;
@@ -28,7 +28,7 @@ use std::ptr;
#[dom_struct]
pub struct TestBinding {
- reflector: Reflector,
+ reflector_: Reflector,
global: GlobalField,
}
@@ -366,4 +366,3 @@ impl TestBinding {
pub fn SetBooleanAttributeStatic(_: GlobalRef, _: bool) {}
pub fn ReceiveVoidStatic(_: GlobalRef) {}
}
-
diff --git a/components/script/dom/testbindingproxy.rs b/components/script/dom/testbindingproxy.rs
new file mode 100644
index 00000000000..39682a15496
--- /dev/null
+++ b/components/script/dom/testbindingproxy.rs
@@ -0,0 +1,31 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+ use dom::bindings::codegen::Bindings::TestBindingProxyBinding::TestBindingProxyMethods;
+ use dom::bindings::js::JSRef;
+ use dom::bindings::utils::Reflector;
+ use util::str::DOMString;
+
+
+ #[dom_struct]
+ pub struct TestBindingProxy {
+ reflector_: Reflector
+ }
+
+ impl<'a> TestBindingProxyMethods for JSRef<'a, TestBindingProxy> {
+
+ fn GetNamedItem(self, _: DOMString) -> DOMString {"".to_owned()}
+ fn SetNamedItem(self, _: DOMString, _: DOMString) -> () {}
+ fn GetItem(self, _: u32) -> DOMString {"".to_owned()}
+ fn SetItem(self, _: u32, _: DOMString) -> () {}
+ fn RemoveItem(self, _: DOMString) -> () {}
+ fn Stringifier(self) -> DOMString {"".to_owned()}
+ fn NamedCreator(self, _: DOMString, _: DOMString) -> () {}
+ fn IndexedGetter(self, _: u32, _: &mut bool) -> DOMString {"".to_owned()}
+ fn NamedDeleter(self, _: DOMString) -> () {}
+ fn IndexedSetter(self, _: u32, _: DOMString) -> () {}
+ fn NamedSetter(self, _: DOMString, _: DOMString) -> () {}
+ fn IndexedCreator(self, _: u32, _: DOMString) -> () {}
+ fn NamedGetter(self, _: DOMString, _: &mut bool) -> DOMString {"".to_owned()}
+
+ }
diff --git a/components/script/dom/webidls/TestBindingProxy.webidl b/components/script/dom/webidls/TestBindingProxy.webidl
new file mode 100644
index 00000000000..4418b8849a7
--- /dev/null
+++ b/components/script/dom/webidls/TestBindingProxy.webidl
@@ -0,0 +1,25 @@
+/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This IDL file was created to test the special operations (see
+ * http://heycam.github.io/webidl/#idl-special-operations) without converting
+ * TestBinding.webidl into a proxy.
+ *
+ */
+
+interface TestBindingProxy : TestBinding {
+
+ getter DOMString getNamedItem(DOMString name);
+
+ setter creator void setNamedItem(DOMString name, DOMString value);
+
+ getter DOMString getItem(unsigned long index);
+
+ setter creator void setItem(unsigned long index, DOMString value);
+
+ deleter void removeItem(DOMString name);
+
+ stringifier;
+};
diff --git a/tests/wpt/mozilla/tests/mozilla/interfaces.html b/tests/wpt/mozilla/tests/mozilla/interfaces.html
index 06e04248be7..659c821f88d 100644
--- a/tests/wpt/mozilla/tests/mozilla/interfaces.html
+++ b/tests/wpt/mozilla/tests/mozilla/interfaces.html
@@ -170,6 +170,7 @@ var interfaceNamesInGlobalScope = [
"Storage",
"StorageEvent",
"TestBinding", // XXX
+ "TestBindingProxy", // XXX
"Text",
"TextDecoder",
"TextEncoder",