]> git.proxmox.com Git - rustc.git/blob - vendor/js-sys/tests/wasm/Map.rs
New upstream version 1.70.0+dfsg2
[rustc.git] / vendor / js-sys / tests / wasm / Map.rs
1 use js_sys::*;
2 use wasm_bindgen::JsCast;
3 use wasm_bindgen_test::*;
4
5 #[wasm_bindgen_test]
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]
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]
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]
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]
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]
71 fn new() {
72 assert_eq!(Map::new().size(), 0);
73 }
74
75 #[wasm_bindgen_test]
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]
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]
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 }