Skip to content

Commit bd24b80

Browse files
authored
Merge pull request #283 from fieg/jquery3
Test against jquery3
2 parents fefd88e + 6c6dd48 commit bd24b80

File tree

9 files changed

+314
-17
lines changed

9 files changed

+314
-17
lines changed

.travis.yml

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
sudo: false
22

3+
addons:
4+
firefox: latest
5+
36
before_script:
4-
- npm install
57
- npm install -g bower
68
- bower install --production
79
- bower install --force jquery#$JQUERY_VERSION
@@ -18,13 +20,14 @@ script:
1820

1921
language: node_js
2022

23+
cache:
24+
directories:
25+
- node_modules # NPM packages
26+
2127
node_js:
2228
- 0.10
2329

2430
env:
25-
- JQUERY_VERSION=1.10.*
26-
- JQUERY_VERSION=1.11.*
27-
- JQUERY_VERSION=1.12.*
28-
- JQUERY_VERSION=2.0.*
29-
- JQUERY_VERSION=2.1.*
30-
- JQUERY_VERSION=2.2.*
31+
- JQUERY_VERSION=^1.12
32+
- JQUERY_VERSION=^2.0
33+
- JQUERY_VERSION=^3.0

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@
1111
"dist"
1212
],
1313
"dependencies": {
14-
"jquery": "git://github.com/components/jquery.git#>=1.7"
14+
"jquery": "git://github.com/components/jquery.git#>=1.12"
1515
}
1616
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
],
2727
"license": "Dual-license",
2828
"dependencies": {
29-
"jquery": ">=1.7"
29+
"jquery": ">=1.12"
3030
},
3131
"devDependencies": {
3232
"grunt": "~0.4",

src/jquery-ias.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -380,8 +380,6 @@
380380
this.hidePagination();
381381
this.bind();
382382

383-
this.fire('ready');
384-
385383
this.nextUrl = this.getNextUrl();
386384

387385
// start loading next page if content is shorter than page fold
@@ -391,9 +389,13 @@
391389
// flag as initialized when rendering is completed
392390
this.one('rendered', function() {
393391
this.isInitialized = true;
392+
393+
this.fire('ready');
394394
});
395395
} else {
396396
this.isInitialized = true;
397+
398+
this.fire('ready');
397399
}
398400

399401
return this;
@@ -584,7 +586,7 @@
584586

585587
this.extensions.push(extension);
586588

587-
if (this.isInitialized) {
589+
if (this.isBound) {
588590
this.reinitialize();
589591
}
590592

test/03-extensions-test.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,12 @@ describe("IAS", function () {
5252

5353
jQuery.ias().extension(new anExtension());
5454

55-
expect(spy1).toHaveBeenCalledOnce();
55+
// wait some for ias to be fully initialized
56+
wait(100).then(function() {
57+
expect(spy1).toHaveBeenCalledOnce();
5658

57-
deferred.resolve();
59+
deferred.resolve();
60+
});
5861

5962
return deferred.promise;
6063
});

test/04-trigger-extension-test.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ describe("IAS", function () {
2424
html: '<div class="ias-trigger extra-trigger-class">{text}</div>'
2525
}));
2626

27-
jQuery.ias().initialize();
28-
2927
expect($('.ias-trigger:visible').length).toEqual(0); // ensure it isn't already there
3028

3129
scrollDown().then(function() {
@@ -41,7 +39,9 @@ describe("IAS", function () {
4139

4240
// expect it to have the additional class as given with the options
4341
expect($('.ias-trigger:visible').get(0)).toHaveClassName('extra-trigger-class');
42+
});
4443

44+
wait(1500).then(function() {
4545
deferred.resolve();
4646
});
4747
});
@@ -65,7 +65,9 @@ describe("IAS", function () {
6565

6666
wait(2000).then(function() {
6767
expect($('#post11').length).toEqual(1);
68+
});
6869

70+
wait(2100).then(function() {
6971
deferred.resolve();
7072
});
7173
});
@@ -91,7 +93,6 @@ describe("IAS", function () {
9193
scrollDown().then(function() {
9294
wait(1000).then(function() {
9395
// expect the trigger not to be visible
94-
expect($('.ias-trigger:visible').length).toEqual(0);
9596

9697
// expect it to have loaded the next page
9798
expect($('#post11').length).toEqual(1);
@@ -104,7 +105,9 @@ describe("IAS", function () {
104105

105106
// expect it not to have loaded the next page
106107
expect($('#post21').length).toEqual(0);
108+
});
107109

110+
wait(1500).then(function() {
108111
deferred.resolve();
109112
});
110113
});

test/debug/page1.html

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5+
<title>Page 1</title>
6+
</head>
7+
<body>
8+
<div id="content">
9+
<div class="listing">
10+
<div class="post" id="post1">
11+
<strong>item 1</strong>
12+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
13+
</div>
14+
15+
<div class="post">
16+
<strong>item 2</strong>
17+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
18+
</div>
19+
20+
<div class="post">
21+
<strong>item 3</strong>
22+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
23+
</div>
24+
25+
<div class="post">
26+
<strong>item 4</strong>
27+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
28+
</div>
29+
30+
<div class="post">
31+
<strong>item 5</strong>
32+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
33+
</div>
34+
35+
<div class="post">
36+
<strong>item 6</strong>
37+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
38+
</div>
39+
40+
<div class="post">
41+
<strong>item 7</strong>
42+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
43+
</div>
44+
45+
<div class="post">
46+
<strong>item 8</strong>
47+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
48+
</div>
49+
50+
<div class="post">
51+
<strong>item 9</strong>
52+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
53+
</div>
54+
55+
<div class="post">
56+
<strong>item 10</strong>
57+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
58+
</div>
59+
</div>
60+
61+
<div class="navigation">
62+
<ul>
63+
<li>1</li>
64+
<li><a href="page2.html">2</a></li>
65+
<li><a href="page3.html">3</a></li>
66+
<li class="next-posts"><a href="page2.html">next</a></li>
67+
</ul>
68+
</div>
69+
</div>
70+
71+
72+
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
73+
<script type="text/javascript" src="../../src/callbacks.js"></script>
74+
<script type="text/javascript" src="../../src/jquery-ias.js"></script>
75+
<script type="text/javascript" src="../../src/extension/history.js"></script>
76+
<script type="text/javascript" src="../../src/extension/noneleft.js"></script>
77+
<script type="text/javascript" src="../../src/extension/paging.js"></script>
78+
<script type="text/javascript" src="../../src/extension/spinner.js"></script>
79+
<script type="text/javascript" src="../../src/extension/trigger.js"></script>
80+
81+
<script type="text/javascript">
82+
var ias = $.ias({
83+
container: "#content",
84+
item: ".post",
85+
pagination: ".navigation",
86+
next: ".next-posts a"
87+
});
88+
89+
ias.extension(new IASSpinnerExtension());
90+
ias.extension(new IASTriggerExtension({offset: 1}));
91+
ias.extension(new IASNoneLeftExtension({text: 'There are no more pages left to load.'}));
92+
</script>
93+
94+
</body>
95+
</html>

test/debug/page2.html

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5+
<title>Page 2</title>
6+
</head>
7+
<body>
8+
<div id="content">
9+
<div class="listing">
10+
<div class="post" id="post11">
11+
<strong>item 11</strong>
12+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
13+
</div>
14+
15+
<div class="post">
16+
<strong>item 12</strong>
17+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
18+
</div>
19+
20+
<div class="post">
21+
<strong>item 13</strong>
22+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
23+
</div>
24+
25+
<div class="post">
26+
<strong>item 14</strong>
27+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
28+
</div>
29+
30+
<div class="post">
31+
<strong>item 15</strong>
32+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
33+
</div>
34+
35+
<div class="post">
36+
<strong>item 16</strong>
37+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
38+
</div>
39+
40+
<div class="post">
41+
<strong>item 17</strong>
42+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
43+
</div>
44+
45+
<div class="post">
46+
<strong>item 18</strong>
47+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
48+
</div>
49+
50+
<div class="post">
51+
<strong>item 19</strong>
52+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
53+
</div>
54+
55+
<div class="post">
56+
<strong>item 20</strong>
57+
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis.</p>
58+
</div>
59+
</div>
60+
61+
<div class="navigation">
62+
<ul>
63+
<li class="prev-posts"><a href="./">prev</a></li>
64+
<li><a href="./">1</a></li>
65+
<li>2</li>
66+
<li><a href="page3.html">3</a></li>
67+
<li class="next-posts"><a href="page3.html">next</a></li>
68+
</ul>
69+
</div>
70+
</div>
71+
72+
73+
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
74+
<script type="text/javascript" src="../../src/callbacks.js"></script>
75+
<script type="text/javascript" src="../../src/jquery-ias.js"></script>
76+
<script type="text/javascript" src="../../src/extension/history.js"></script>
77+
<script type="text/javascript" src="../../src/extension/noneleft.js"></script>
78+
<script type="text/javascript" src="../../src/extension/paging.js"></script>
79+
<script type="text/javascript" src="../../src/extension/spinner.js"></script>
80+
<script type="text/javascript" src="../../src/extension/trigger.js"></script>
81+
82+
<script type="text/javascript">
83+
var ias = $.ias({
84+
container: "#content",
85+
item: ".post",
86+
pagination: ".navigation",
87+
next: ".next-posts a"
88+
});
89+
90+
ias.extension(new IASSpinnerExtension());
91+
ias.extension(new IASTriggerExtension({offset: 3}));
92+
ias.extension(new IASNoneLeftExtension({text: 'There are no more pages left to load.'}));
93+
</script>
94+
95+
</body>
96+
</html>

0 commit comments

Comments
 (0)