Skip to content

Commit 8610b6d

Browse files
committed
append/prepend clipping tests
1 parent 7db86dc commit 8610b6d

File tree

4 files changed

+71
-8
lines changed

4 files changed

+71
-8
lines changed

demo/adapterSync/adapterSync.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ app.factory('Server', [
77

88
firstIndex: 1,
99

10-
lastIndex: 90,
10+
lastIndex: 40,
1111

1212
delay: 100,
1313

@@ -113,7 +113,7 @@ app.controller('mainController', [
113113
get: function (index, count, success) {
114114
console.log('request by index = ' + index + ', count = ' + count);
115115
Server.request(index, count).then(function (result) {
116-
if (result.items.length) {
116+
if (result.items) {
117117
console.log('resolved ' + result.items.length + ' items');
118118
}
119119
success(result.items);

demo/remote/remote.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,6 @@ angular.module('application', ['ui.scroll'])
2323
}
2424
},
2525

26-
getFirst: function() {
27-
return this.first;
28-
},
29-
3026
request: function(index, count) {
3127
var self = this;
3228
var deferred = $q.defer();

test/AdapterTestsSpec.js

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1185,4 +1185,70 @@ describe('uiScroll', function () {
11851185

11861186
});
11871187

1188+
describe('adapter append/prepend clipping', function () {
1189+
var scrollSettings = {datasource: 'myOnePageDatasource', adapter: 'adapter', viewportHeight: 60, itemHeight: 20, bufferSize: 3, padding: 1};
1190+
1191+
it('should not clip after 1 small pack appended', function () {
1192+
runTest(scrollSettings,
1193+
function (viewport, scope) {
1194+
1195+
expect(scope.adapter.isEOF()).toBe(true);
1196+
scope.adapter.append(['item1*', 'item2*', 'item3*']);
1197+
1198+
expect(scope.adapter.isEOF()).toBe(true);
1199+
expect(viewport.children().length).toBe(2 + 3 + 3);
1200+
var lastRow = viewport.children()[viewport.children().length - 2];
1201+
expect(lastRow.innerHTML).toBe('6: item3*');
1202+
}
1203+
);
1204+
});
1205+
1206+
it('should clip 1 bottom item from the 1 big pack appended', function () {
1207+
runTest(scrollSettings,
1208+
function (viewport, scope) {
1209+
1210+
expect(scope.adapter.isEOF()).toBe(true);
1211+
scope.adapter.append(['item1*', 'item2*', 'item3*', 'item4*']);
1212+
1213+
expect(scope.adapter.isEOF()).toBe(false);
1214+
1215+
viewport.scrollTop(10000);
1216+
viewport.trigger('scroll');
1217+
1218+
expect(scope.adapter.isEOF()).toBe(true);
1219+
1220+
expect(viewport.children().length).toBe(2 + 3 + 3);
1221+
var lastRow = viewport.children()[viewport.children().length - 2];
1222+
expect(lastRow.innerHTML).toBe('6: item3*');
1223+
}
1224+
);
1225+
});
1226+
1227+
it('should clip 1 pack from top after 3 packs appended', function () {
1228+
runTest(scrollSettings,
1229+
function (viewport, scope) {
1230+
1231+
scope.adapter.append(['item1*', 'item2*', 'item3*', 'item4*']);
1232+
expect(viewport.children().length).toBe(2 + 3 + 3);
1233+
viewport.scrollTop(3 * 20);
1234+
viewport.trigger('scroll');
1235+
1236+
scope.adapter.append(['item4*', 'item5*', 'item6*', 'item7*']);
1237+
expect(viewport.children().length).toBe(2 + 3 + 3 + 3);
1238+
viewport.scrollTop(3 * 20 * 2);
1239+
viewport.trigger('scroll');
1240+
1241+
scope.adapter.append(['item7*', 'item8*', 'item9*', 'item10*']);
1242+
expect(viewport.children().length).toBe(2 + 3 + 3 + 3);
1243+
1244+
var firstRow = viewport.children()[1];
1245+
expect(firstRow.innerHTML).toBe('4: item1*');
1246+
var lastRow = viewport.children()[viewport.children().length - 2];
1247+
expect(lastRow.innerHTML).toBe('12: item9*');
1248+
}
1249+
);
1250+
});
1251+
1252+
});
1253+
11881254
});

test/scaffolding.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
function createHtml (settings) {
22
var viewportStyle = ' style="height:' + (settings.viewportHeight || 200) + 'px"';
33
var itemStyle = settings.itemHeight ? ' style="height:' + settings.itemHeight + 'px"' : '';
4-
var bufferSize = settings.bufferSize ? ' buffer-size="' + settings.bufferSize + '"' : '';
4+
var bufferSize = settings.bufferSize ? ' buffer-size="' + settings.bufferSize + '"' : '';
5+
var padding = settings.padding ? ' padding="' + settings.padding + '"' : '';
56
var isLoading = settings.isLoading ? ' is-loading="' + settings.isLoading + '"' : '';
67
var topVisible = settings.topVisible ? ' top-visible="' + settings.topVisible + '"' : '';
78
var disabled = settings.disabled ? ' disabled="' + settings.disabled + '"' : '';
@@ -11,7 +12,7 @@ function createHtml (settings) {
1112
(settings.wrapper ? settings.wrapper.start : '') +
1213
'<div ui-scroll="item in ' + settings.datasource + '"' +
1314
adapter +
14-
itemStyle + bufferSize + isLoading + topVisible + disabled + '>' +
15+
itemStyle + bufferSize + padding + isLoading + topVisible + disabled + '>' +
1516
template +
1617
'</div>' +
1718
(settings.wrapper ? settings.wrapper.end : '') +

0 commit comments

Comments
 (0)