1 use js_sys::*;
2 use wasm_bindgen::JsCast;
3 use wasm_bindgen_test::*;
4 
5 #[wasm_bindgen_test]
clear()6 fn clear() {
7     let map = Map::new();
8     map.set(&"foo".into(), &"bar".into());
9     map.set(&"bar".into(), &"baz".into());
10     assert_eq!(map.size(), 2);
11     map.clear();
12     assert_eq!(map.size(), 0);
13     map.clear();
14     assert_eq!(map.size(), 0);
15 }
16 
17 #[wasm_bindgen_test]
delete()18 fn delete() {
19     let map = Map::new();
20     map.set(&"foo".into(), &"bar".into());
21     assert_eq!(map.size(), 1);
22     assert_eq!(map.delete(&"foo".into()), true);
23     assert_eq!(map.delete(&"bar".into()), false);
24     assert_eq!(map.size(), 0);
25 }
26 
27 #[wasm_bindgen_test]
for_each()28 fn for_each() {
29     let map = Map::new();
30     map.set(&1.into(), &true.into());
31     map.set(&2.into(), &false.into());
32     map.set(&3.into(), &"awoo".into());
33     map.set(&4.into(), &100.into());
34     map.set(&5.into(), &Array::new().into());
35     map.set(&6.into(), &Object::new().into());
36 
37     let mut res = Vec::new();
38     map.for_each(&mut |value, key| {
39         if value.as_bool().is_some() {
40             res.push((key, value));
41         }
42     });
43 
44     assert_eq!(map.size(), 6);
45     assert_eq!(res.len(), 2);
46     assert_eq!(res[0].0, 1);
47     assert_eq!(res[0].1, true);
48     assert_eq!(res[1].0, 2);
49     assert_eq!(res[1].1, false);
50 }
51 
52 #[wasm_bindgen_test]
get()53 fn get() {
54     let map = Map::new();
55     map.set(&"foo".into(), &"bar".into());
56     map.set(&1.into(), &2.into());
57     assert_eq!(map.get(&"foo".into()), "bar");
58     assert_eq!(map.get(&1.into()), 2);
59     assert!(map.get(&2.into()).is_undefined());
60 }
61 
62 #[wasm_bindgen_test]
has()63 fn has() {
64     let map = Map::new();
65     map.set(&"foo".into(), &"bar".into());
66     assert_eq!(map.has(&"foo".into()), true);
67     assert_eq!(map.has(&"bar".into()), false);
68 }
69 
70 #[wasm_bindgen_test]
new()71 fn new() {
72     assert_eq!(Map::new().size(), 0);
73 }
74 
75 #[wasm_bindgen_test]
set()76 fn set() {
77     let map = Map::new();
78     let new = map.set(&"foo".into(), &"bar".into());
79     assert_eq!(map.has(&"foo".into()), true);
80     assert_eq!(new.has(&"foo".into()), true);
81 }
82 
83 #[wasm_bindgen_test]
size()84 fn size() {
85     let map = Map::new();
86     map.set(&"foo".into(), &"bar".into());
87     map.set(&"bar".into(), &"baz".into());
88     assert_eq!(map.size(), 2);
89 }
90 
91 #[wasm_bindgen_test]
map_inheritance()92 fn map_inheritance() {
93     let map = Map::new();
94     assert!(map.is_instance_of::<Map>());
95     assert!(map.is_instance_of::<Object>());
96     let _: &Object = map.as_ref();
97 }
98