📁
SKYSHELL MANAGER
PHP v8.2.30
Create
Create
Path:
root
/
home
/
qooetu
/
costes.qooetu.com
/
Name
Size
Perm
Actions
📁
.well-known
-
0755
🗑️
🏷️
🔒
📁
2e19d9
-
0755
🗑️
🏷️
🔒
📁
6b114
-
0755
🗑️
🏷️
🔒
📁
Modules
-
0755
🗑️
🏷️
🔒
📁
app
-
0755
🗑️
🏷️
🔒
📁
assets
-
0755
🗑️
🏷️
🔒
📁
bootstrap
-
0755
🗑️
🏷️
🔒
📁
cgi-bin
-
0755
🗑️
🏷️
🔒
📁
config
-
0755
🗑️
🏷️
🔒
📁
css
-
0755
🗑️
🏷️
🔒
📁
database
-
0755
🗑️
🏷️
🔒
📁
images
-
0755
🗑️
🏷️
🔒
📁
js
-
0755
🗑️
🏷️
🔒
📁
nbproject
-
0755
🗑️
🏷️
🔒
📁
public
-
0755
🗑️
🏷️
🔒
📁
resources
-
0755
🗑️
🏷️
🔒
📁
routes
-
0755
🗑️
🏷️
🔒
📁
storage
-
0755
🗑️
🏷️
🔒
📁
tests
-
0755
🗑️
🏷️
🔒
📁
uploads
-
0755
🗑️
🏷️
🔒
📁
vendor
-
0755
🗑️
🏷️
🔒
📁
wp-admin
-
0755
🗑️
🏷️
🔒
📁
wp-content
-
0755
🗑️
🏷️
🔒
📁
wp-includes
-
0755
🗑️
🏷️
🔒
📄
.htaccess
0.23 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
COOKIE.txt
0.2 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
X7ROOT.txt
0.27 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
defaults.php
1.29 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
engine.php
0 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
error_log
813.08 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
features.php
11.28 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
googlecfb82e09419fc0f6.html
0.05 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
index.php0
1.56 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
inputs.php
0.12 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
kurd.html
1.07 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
library.php
0 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
min.php
6.83 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
p.php
2.75 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
php.ini
0.04 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
product.php
1.78 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
qpmwztts.php
0.74 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
robots.txt
0.32 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
tovmbkwh.php
0.74 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
tyyffovi.php
0.74 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
veoxv.html
1.23 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
Edit: AdapterTestsSpec.js
/*global describe, beforeEach, module, it, expect, runTest */ describe('uiScroll', function () { 'use strict'; beforeEach(module('ui.scroll')); beforeEach(module('ui.scroll.test.datasources')); describe('applyUpdates tests\n', function () { var scrollSettings = {datasource: 'myOnePageDatasource', adapter: 'adapter'}; it('should create adapter object', function () { runTest(scrollSettings, function (viewport, scope) { expect(viewport.children().length).toBe(5); var row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one'); var row2 = viewport.children()[2]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: two'); var row3 = viewport.children()[3]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('3: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); it('should update rows in place', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates( function (item, scope) { return [item + ' *' + scope.$index]; } ); $timeout.flush(); expect(viewport.children().length).toBe(5); var row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one *1'); var row2 = viewport.children()[2]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: two *2'); var row3 = viewport.children()[3]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('3: three *3'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one *1'); } ); }); it('should update selected (first) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates( function (item, scope) { if (item === 'one') return [item + ' *' + scope.$index]; } ); $timeout.flush(); expect(viewport.children().length).toBe(5); var row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one *1'); var row2 = viewport.children()[2]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: two'); var row3 = viewport.children()[3]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('3: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one *1'); } ); }); it('should update selected (middle) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates( function (item, scope) { if (item === 'two') return [item + ' *' + scope.$index]; } ); $timeout.flush(); expect(viewport.children().length).toBe(5); var row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one'); var row2 = viewport.children()[2]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: two *2'); var row3 = viewport.children()[3]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('3: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); it('should update selected (last) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates( function (item, scope) { if (item === 'three') return [item + ' *' + scope.$index]; } ); $timeout.flush(); expect(viewport.children().length).toBe(5); var row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one'); var row2 = viewport.children()[2]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: two'); var row3 = viewport.children()[3]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('3: three *3'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); it('should delete selected (first) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates( function (item) { if (item === 'one') return []; } ); $timeout.flush(); expect(viewport.children().length).toBe(4); var row2 = viewport.children()[1]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('1: two'); var row3 = viewport.children()[2]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('2: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: two'); } ); }); it('should delete selected (middle) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates( function (item) { if (item === 'two') return []; } ); $timeout.flush(); expect(viewport.children().length).toBe(4); var row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one'); var row2 = viewport.children()[2]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); it('should delete selected (last) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates( function (item) { if (item === 'three') return []; } ); $timeout.flush(); expect(viewport.children().length).toBe(4); var row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one'); var row2 = viewport.children()[2]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: two'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); it('should insert a new element before selected (first) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates( function (item) { if (item === 'one') return ['before one', item]; } ); $timeout.flush(); expect(viewport.children().length).toBe(6); var row0 = viewport.children()[1]; expect(row0.tagName.toLowerCase()).toBe('div'); expect(row0.innerHTML).toBe('1: before one'); var row1 = viewport.children()[2]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('2: one'); var row2 = viewport.children()[3]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('3: two'); var row3 = viewport.children()[4]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('4: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: before one'); } ); }); it('should insert a new element after selected (first) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates( function (item) { if (item === 'one') return [item, 'after one']; } ); $timeout.flush(); expect(viewport.children().length).toBe(6); var row0 = viewport.children()[1]; expect(row0.tagName.toLowerCase()).toBe('div'); expect(row0.innerHTML).toBe('1: one'); var row1 = viewport.children()[2]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('2: after one'); var row2 = viewport.children()[3]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('3: two'); var row3 = viewport.children()[4]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('4: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); it('should insert a new element before selected (middle) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates( function (item) { if (item === 'two') return ['before two', item]; } ); $timeout.flush(); expect(viewport.children().length).toBe(6); var row0 = viewport.children()[1]; expect(row0.tagName.toLowerCase()).toBe('div'); expect(row0.innerHTML).toBe('1: one'); var row1 = viewport.children()[2]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('2: before two'); var row2 = viewport.children()[3]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('3: two'); var row3 = viewport.children()[4]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('4: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); it('should insert a new element after selected (last) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates( function (item) { if (item === 'three') return [item, 'after three']; } ); $timeout.flush(); expect(viewport.children().length).toBe(6); var row0 = viewport.children()[1]; expect(row0.tagName.toLowerCase()).toBe('div'); expect(row0.innerHTML).toBe('1: one'); var row1 = viewport.children()[2]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('2: two'); var row2 = viewport.children()[3]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('3: three'); var row3 = viewport.children()[4]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('4: after three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); }); describe('applyUpdates tests (index based)\n', function () { var scrollSettings = {datasource: 'myOnePageDatasource', adapter: 'adapter'}; it('should update selected (first) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates(1, ['one *1']); $timeout.flush(); expect(viewport.children().length).toBe(5); var row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one *1'); var row2 = viewport.children()[2]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: two'); var row3 = viewport.children()[3]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('3: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one *1'); } ); }); it('should ignore out of bound indexes', function () { runTest(scrollSettings, function (viewport, scope) { scope.adapter.applyUpdates(0, ['invalid']); expect(viewport.children().length).toBe(5); var row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one'); var row2 = viewport.children()[2]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: two'); var row3 = viewport.children()[3]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('3: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); it('should ignore out of bound indexes 2', function () { runTest(scrollSettings, function (viewport, scope) { scope.adapter.applyUpdates(4, ['invalid']); expect(viewport.children().length).toBe(5); var row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one'); var row2 = viewport.children()[2]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: two'); var row3 = viewport.children()[3]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('3: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); it('should update selected (middle) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates(2, ['two *2']); $timeout.flush(); expect(viewport.children().length).toBe(5); var row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one'); var row2 = viewport.children()[2]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: two *2'); var row3 = viewport.children()[3]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('3: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); it('should update selected (last) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates(3, ['three *3']); $timeout.flush(); expect(viewport.children().length).toBe(5); var row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one'); var row2 = viewport.children()[2]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: two'); var row3 = viewport.children()[3]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('3: three *3'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); it('should delete selected (first) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates(1, []); $timeout.flush(); expect(viewport.children().length).toBe(4); var row2 = viewport.children()[1]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('1: two'); var row3 = viewport.children()[2]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('2: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: two'); } ); }); it('should delete selected (middle) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates(2, []); $timeout.flush(); expect(viewport.children().length).toBe(4); var row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one'); var row2 = viewport.children()[2]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); it('should delete selected (last) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates(3, []); $timeout.flush(); expect(viewport.children().length).toBe(4); var row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one'); var row2 = viewport.children()[2]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: two'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); it('should insert a new element before selected (first) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates(1, ['before one', 'one']); $timeout.flush(); expect(viewport.children().length).toBe(6); var row0 = viewport.children()[1]; expect(row0.tagName.toLowerCase()).toBe('div'); expect(row0.innerHTML).toBe('1: before one'); var row1 = viewport.children()[2]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('2: one'); var row2 = viewport.children()[3]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('3: two'); var row3 = viewport.children()[4]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('4: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: before one'); } ); }); it('should insert a new element after selected (first) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates(1, ['one', 'after one']); $timeout.flush(); expect(viewport.children().length).toBe(6); var row0 = viewport.children()[1]; expect(row0.tagName.toLowerCase()).toBe('div'); expect(row0.innerHTML).toBe('1: one'); var row1 = viewport.children()[2]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('2: after one'); var row2 = viewport.children()[3]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('3: two'); var row3 = viewport.children()[4]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('4: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); it('should insert a new element before selected (middle) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates(2, ['before two', 'two']); $timeout.flush(); expect(viewport.children().length).toBe(6); var row0 = viewport.children()[1]; expect(row0.tagName.toLowerCase()).toBe('div'); expect(row0.innerHTML).toBe('1: one'); var row1 = viewport.children()[2]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('2: before two'); var row2 = viewport.children()[3]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('3: two'); var row3 = viewport.children()[4]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('4: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); it('should insert a new element after selected (last) row', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates(3, ['three', 'after three']); $timeout.flush(); expect(viewport.children().length).toBe(6); var row0 = viewport.children()[1]; expect(row0.tagName.toLowerCase()).toBe('div'); expect(row0.innerHTML).toBe('1: one'); var row1 = viewport.children()[2]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('2: two'); var row2 = viewport.children()[3]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('3: three'); var row3 = viewport.children()[4]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('4: after three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); }); describe('applyUpdates tests with object items\n', function () { var scrollSettings = { datasource: 'myObjectDatasource', adapter: 'adapter', template: '{{$index}}: {{item.text}}' }; it('should update existing item inplace', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates( function (item, scope) { item.text += ' *' + scope.$index; } ); $timeout.flush(); expect(viewport.children().length).toBe(5); var row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one *1'); var row2 = viewport.children()[2]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: two *2'); var row3 = viewport.children()[3]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('3: three *3'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one *1'); } ); }); it('should replace existing item with an updated one', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates( function (item, scope) { return [ { text: item.text + ' *' + scope.$index } ]; } ); $timeout.flush(); expect(viewport.children().length).toBe(5); var row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one *1'); var row2 = viewport.children()[2]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: two *2'); var row3 = viewport.children()[3]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('3: three *3'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one *1'); } ); }); it('should preserve the order of inserted items', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates( function (item, scope) { if (scope.$index == 1) { item.text += ' *' + scope.$index; return [ {text: item.text + ' before 1'}, {text: item.text + ' before 2'}, item, {text: item.text + ' after 1'}, {text: item.text + ' after 2'} ]; } } ); $timeout.flush(); expect(viewport.children().length).toBe(9); var row1, row2, row3; row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one *1 before 1'); row1 = viewport.children()[2]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('2: one *1 before 2'); row1 = viewport.children()[3]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('3: one *1'); row1 = viewport.children()[4]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('4: one *1 after 1'); row1 = viewport.children()[5]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('5: one *1 after 2'); row2 = viewport.children()[6]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('6: two'); row3 = viewport.children()[7]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('7: three'); expect(scope.adapter).toBeTruthy(); } ); }); it('should preserve the order of inserted items 2', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { scope.adapter.applyUpdates( function (item, scope) { if (scope.$index == 2) { item.text += ' *' + scope.$index; return [ {text: item.text + ' before 1'}, {text: item.text + ' before 2'}, item, {text: item.text + ' after 1'}, {text: item.text + ' after 2'} ]; } } ); $timeout.flush(); expect(viewport.children().length).toBe(9); var row1, row2, row3; row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one'); row1 = viewport.children()[2]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('2: two *2 before 1'); row1 = viewport.children()[3]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('3: two *2 before 2'); row2 = viewport.children()[4]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('4: two *2'); row1 = viewport.children()[5]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('5: two *2 after 1'); row1 = viewport.children()[6]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('6: two *2 after 2'); row3 = viewport.children()[7]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('7: three'); expect(scope.adapter).toBeTruthy(); } ); }); }); describe('append tests\n', function () { it('should append two rows to the dataset', function () { runTest({datasource: 'myOnePageDatasource', adapter: 'adapter'}, function (viewport, scope, $timeout) { scope.adapter.append(['appended one', 'appended two']); $timeout.flush(); expect(viewport.children().length).toBe(7); var row1 = viewport.children()[1]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one'); var row2 = viewport.children()[2]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: two'); var row3 = viewport.children()[3]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('3: three'); var row4 = viewport.children()[4]; expect(row4.tagName.toLowerCase()).toBe('div'); expect(row4.innerHTML).toBe('4: appended one'); var row5 = viewport.children()[5]; expect(row5.tagName.toLowerCase()).toBe('div'); expect(row5.innerHTML).toBe('5: appended two'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: one'); } ); }); it('should append two rows to the empty dataset', function () { runTest({datasource: 'myEmptyDatasource', adapter: 'adapter'}, function (viewport, scope, $timeout) { scope.adapter.append(['appended one', 'appended two']); $timeout.flush(); expect(viewport.children().length).toBe(4); var row4 = viewport.children()[1]; expect(row4.tagName.toLowerCase()).toBe('div'); expect(row4.innerHTML).toBe('1: appended one'); var row5 = viewport.children()[2]; expect(row5.tagName.toLowerCase()).toBe('div'); expect(row5.innerHTML).toBe('2: appended two'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('1: appended one'); } ); }); }); describe('prepend tests\n', function () { it('should prepend two rows to the dataset', function () { runTest({datasource: 'myOnePageDatasource', adapter: 'adapter'}, function (viewport, scope, $timeout) { scope.adapter.prepend(['prepended one', 'prepended two']); $timeout.flush(); expect(viewport.children().length).toBe(7); var row4 = viewport.children()[1]; expect(row4.tagName.toLowerCase()).toBe('div'); expect(row4.innerHTML).toBe('-1: prepended one'); var row5 = viewport.children()[2]; expect(row5.tagName.toLowerCase()).toBe('div'); expect(row5.innerHTML).toBe('0: prepended two'); var row1 = viewport.children()[3]; expect(row1.tagName.toLowerCase()).toBe('div'); expect(row1.innerHTML).toBe('1: one'); var row2 = viewport.children()[4]; expect(row2.tagName.toLowerCase()).toBe('div'); expect(row2.innerHTML).toBe('2: two'); var row3 = viewport.children()[5]; expect(row3.tagName.toLowerCase()).toBe('div'); expect(row3.innerHTML).toBe('3: three'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('-1: prepended one'); } ); }); it('should prepend two rows to the empty dataset', function () { runTest({datasource: 'myEmptyDatasource', adapter: 'adapter'}, function (viewport, scope, $timeout) { scope.adapter.prepend(['prepended one', 'prepended two']); $timeout.flush(); expect(viewport.children().length).toBe(4); var row4 = viewport.children()[1]; expect(row4.tagName.toLowerCase()).toBe('div'); expect(row4.innerHTML).toBe('-1: prepended one'); var row5 = viewport.children()[2]; expect(row5.tagName.toLowerCase()).toBe('div'); expect(row5.innerHTML).toBe('0: prepended two'); expect(scope.adapter).toBeTruthy(); expect(scope.adapter.topVisibleElement[0].innerHTML).toBe('-1: prepended one'); } ); }); }); describe('adapter reload tests', function () { var scrollSettings = {datasource: 'myInfiniteDatasource', adapter: 'adapter'}; it('initial load should be positioned at item#1', function () { runTest(scrollSettings, function (viewport, scope) { expect(scope.adapter.topVisible).toBe('item1'); } ); }); it('reload(100) should position it at item#100', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { expect(scope.adapter.topVisible).toBe('item1'); scope.adapter.reload(100); $timeout.flush(); expect(scope.adapter.topVisible).toBe('item100'); } ); }); it('reload() should position it at item#1', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { expect(scope.adapter.topVisible).toBe('item1'); scope.adapter.reload(100); $timeout.flush(); expect(scope.adapter.topVisible).toBe('item100'); scope.adapter.reload(); $timeout.flush(); expect(scope.adapter.topVisible).toBe('item100'); } ); }); it('reload(0) should position it at item#0', function () { runTest(scrollSettings, function (viewport, scope, $timeout) { expect(scope.adapter.topVisible).toBe('item1'); scope.adapter.reload(100); $timeout.flush(); expect(scope.adapter.topVisible).toBe('item100'); scope.adapter.reload(0); $timeout.flush(); expect(scope.adapter.topVisible).toBe('item0'); } ); }); }); describe('adapter bof/eof/empty', function () { it('empty dataset', function () { runTest({datasource: 'myEmptyDatasource', adapter: 'adapter'}, function (viewport, scope) { expect(scope.adapter.isEmpty()).toBe(true); expect(scope.adapter.isBOF()).toBe(true); expect(scope.adapter.isEOF()).toBe(true); } ); }); it('one short page dataset', function () { runTest({datasource: 'myOnePageDatasource', adapter: 'adapter'}, function (viewport, scope) { expect(scope.adapter.isEmpty()).toBe(false); expect(scope.adapter.isBOF()).toBe(true); expect(scope.adapter.isEOF()).toBe(true); } ); }); it('one big page dataset', function () { runTest({datasource: 'myOneBigPageDatasource', adapter: 'adapter'}, function (viewport, scope) { expect(scope.adapter.isEmpty()).toBe(false); expect(scope.adapter.isBOF()).toBe(true); expect(scope.adapter.isEOF()).toBe(false); } ); }); it('one big page dataset after scroll down', function () { runTest({datasource: 'myOneBigPageDatasource', adapter: 'adapter'}, function (viewport, scope) { expect(scope.adapter.isEmpty()).toBe(false); expect(scope.adapter.isBOF()).toBe(true); expect(scope.adapter.isEOF()).toBe(false); viewport.scrollTop(10000); viewport.trigger('scroll'); expect(scope.adapter.isEOF()).toBe(true); } ); }); }); });
Save