/
core.js
140 lines (93 loc) · 3.73 KB
/
core.js
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
module('Core tests');
test('replace with loop', function() {
expect(1);
before_and_after_replace({ loop: true });
});
test('replace without loop', function() {
expect(1);
before_and_after_replace({ loop: false });
});
function before_and_after_replace(options) {
var simple = $('#simple'),
replacement = simple.html(),
expected = null;
simple.owlCarousel(options);
expected = simple.html();
simple.trigger('replace.owl.carousel', [ replacement ]);
simple.trigger('refresh.owl.carousel');
equal(simple.html(), expected, 'Inner HTML before and after replace equals.');
}
test('remove with loop', function() {
expect(3);
before_and_after_remove({ loop: true });
});
test('remove without loop', function() {
expect(3);
before_and_after_remove({ loop: false });
});
function before_and_after_remove(options) {
var simple = $('#simple'),
one = simple.clone().removeAttr('id').insertAfter('#simple'),
two = one.clone().insertAfter(one),
all = two.clone().insertAfter(two);
one.children(':eq(0)').remove();
two.children(':eq(0),:eq(2)').remove();
all.children().remove();
simple.owlCarousel(options);
one.owlCarousel(options);
two.owlCarousel(options);
all.owlCarousel(options);
simple.trigger('remove.owl.carousel', [ 0 ]);
simple.trigger('refresh.owl.carousel');
equal(simple.html(), one.html(), 'Inner HTML before and after remove one equals.');
simple.trigger('remove.owl.carousel', [ 1 ]);
simple.trigger('refresh.owl.carousel');
equal(simple.html(), two.html(), 'Inner HTML before and after remove two equals.');
simple.trigger('remove.owl.carousel', [ 0 ]);
simple.trigger('refresh.owl.carousel');
equal(simple.html(), all.html(), 'Inner HTML before and after remove all equals.');
}
test('remove and add with loop', function() {
expect(1);
before_and_after_remove_add({ loop: true });
});
test('remove and add without loop', function() {
expect(1);
before_and_after_remove_add({ loop: false });
});
function before_and_after_remove_add(options) {
var simple = $('#simple'),
simpleClone = $('#simple').clone().removeAttr('id').insertAfter('#simple');
//move the text along as 'add' adds the new element to the add as expected.
simpleClone.children(':eq(0)').text('2');
simpleClone.children(':eq(1)').text('3');
simpleClone.children(':eq(2)').text('1');
simple.owlCarousel(options);
simpleClone.owlCarousel(options);
simple.trigger('remove.owl.carousel', [ 0 ]);
simple.trigger('add.owl.carousel', [ '<li>1</li>' ]);
simple.trigger('refresh.owl.carousel');
equal(simple.html(), simpleClone.html(), 'Inner HTML before and after `remove()` and `add()` equals.');
}
test('invalidate', function() {
expect(6);
var carousel = $('#simple').owlCarousel().data('owl.carousel');
deepEqual(carousel.invalidate(), [], 'No invalid parts after initializing.');
carousel.invalidate('first');
deepEqual(carousel.invalidate(), [ 'first' ], 'One invalid part after invalidating one.');
carousel.invalidate('second');
deepEqual(carousel.invalidate(), [ 'first', 'second' ], 'Two invalid parts after invalidating a second one.');
carousel.invalidate('second');
deepEqual(carousel.invalidate(), [ 'first', 'second' ], 'Two invalid parts after invalidating a part twice.');
carousel.update();
deepEqual(carousel.invalidate(), [], 'No invalid parts after updating.');
deepEqual(carousel.invalidate('first'), [ 'first' ], 'Invalidating one part returns it directly.');
});
test('destroy', function() {
expect(1);
var simple = $('#simple'),
expected = simple.get(0).outerHTML.replace(/\s{2,}/g, '');
simple.owlCarousel().owlCarousel('destroy');
equal(simple.get(0).outerHTML.replace(/\s{2,}/g, ''), expected, 'Outer HTML before create and after destroy is equal.');
});
start();