1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| beforeEach(function() {
| this.addMatchers({
| toExactlyMatch: function(expected) {
| var a1, a2,
| l, i,
| key,
| actual = this.actual;
|
| var getKeys = function(o) {
| var a = [];
| for(key in o) {
| if(o.hasOwnProperty(key)) {
| a.push(key);
| }
| }
| return a;
| }
| a1 = getKeys(actual);
| a2 = getKeys(expected);
|
| l = a1.length;
| if(l !== a2.length) {
| return false;
| }
| for(i = 0; i < l; i++) {
| key = a1[i];
| expect(key).toEqual(a2[i]);
| expect(actual[key]).toEqual(expected[key]);
| }
|
| return true;
| }
| })
| });
|
|