diff --git a/src/components/content/content.ts b/src/components/content/content.ts
index 2c7dd243ad..53e12a4f8c 100644
--- a/src/components/content/content.ts
+++ b/src/components/content/content.ts
@@ -500,10 +500,6 @@ export class Content extends Ion implements AfterViewInit, OnDestroy {
removeArrayItem(this._imgs, img);
}
- /**
- * @private
- */
-
/**
* @private
* DOM WRITE
diff --git a/src/components/img/test/basic/app-module.ts b/src/components/img/test/basic/app-module.ts
new file mode 100644
index 0000000000..559813021d
--- /dev/null
+++ b/src/components/img/test/basic/app-module.ts
@@ -0,0 +1,35 @@
+import { Component, NgModule } from '@angular/core';
+import { IonicApp, IonicModule } from '../../../..';
+
+
+@Component({
+ templateUrl: 'main.html'
+})
+export class E2EPage {
+
+}
+
+
+@Component({
+ template: ''
+})
+export class E2EApp {
+ root = E2EPage;
+}
+
+
+@NgModule({
+ declarations: [
+ E2EApp,
+ E2EPage
+ ],
+ imports: [
+ IonicModule.forRoot(E2EApp)
+ ],
+ bootstrap: [IonicApp],
+ entryComponents: [
+ E2EApp,
+ E2EPage
+ ]
+})
+export class AppModule {}
diff --git a/src/components/virtual-scroll/test/list/app-module.ts b/src/components/virtual-scroll/test/list/app-module.ts
index 20669f4df8..5c65c2580b 100644
--- a/src/components/virtual-scroll/test/list/app-module.ts
+++ b/src/components/virtual-scroll/test/list/app-module.ts
@@ -6,28 +6,47 @@ import { IonicApp, IonicModule } from '../../../..';
templateUrl: 'main.html'
})
export class E2EPage {
- items: Array<{title: string; id: number}>;
+ items: Array<{id: number, url: string, gif: string}> = [];
+ imgDomain = 'http://localhost:8900';
+ responseDelay = 1500;
+ itemCount = 15;
+ showGifs = false;
constructor() {
- this.fillList();
+ // take a look at the gulp task: test.imageserver
+ var xhr = new XMLHttpRequest();
+ xhr.open('GET', `${this.imgDomain}/reset`, true);
+ xhr.onreadystatechange = () => {
+ if (xhr.readyState === 4) {
+ this.fillList();
+ }
+ };
+ xhr.send();
}
fillList() {
- this.items = [];
- for (let i = 0; i < 500; i++) {
+ this.items.length = 0;
+ let gifIndex = Math.ceil(Math.random() * gifs.length) - 1;
+
+ for (let i = 0; i < this.itemCount; i++) {
this.items.push({
- title: 'Item ' + i,
- id: i
+ id: i,
+ url: `${this.imgDomain}/?d=${this.responseDelay}&id=${i}`,
+ gif: gifs[gifIndex]
});
+ gifIndex++;
+ if (gifIndex >= gifs.length) {
+ gifIndex = 0;
+ }
}
}
emptyList() {
- this.items = [];
+ this.items.length = 0;
}
- itemTapped(ev: any, item: {title: string, date: string}) {
- console.log(`itemTapped: ${item.title}`);
+ toggleGifs() {
+ this.showGifs = !this.showGifs;
}
reload() {
@@ -36,6 +55,52 @@ export class E2EPage {
}
+const gifs = [
+ 'https://media.giphy.com/media/cFdHXXm5GhJsc/giphy.gif',
+ 'https://media.giphy.com/media/5JjLO6t0lNvLq/giphy.gif',
+ 'https://media.giphy.com/media/ZmdIZ8K4fKEEM/giphy.gif',
+ 'https://media.giphy.com/media/lKXEBR8m1jWso/giphy.gif',
+ 'https://media.giphy.com/media/PjplWH49v1FS0/giphy.gif',
+ 'https://media.giphy.com/media/SyVyFtBTTVb5m/giphy.gif',
+ 'https://media.giphy.com/media/LWqQ5glpSMjny/giphy.gif',
+ 'https://media.giphy.com/media/l396Dat26yQOdfWgw/giphy.gif',
+ 'https://media.giphy.com/media/zetsDd1oSNd96/giphy.gif',
+ 'https://media.giphy.com/media/F6PFPjc3K0CPe/giphy.gif',
+ 'https://media.giphy.com/media/L0GJP0ZxdnVbW/giphy.gif',
+ 'https://media.giphy.com/media/26ufbLWPFHkhwXcpW/giphy.gif',
+ 'https://media.giphy.com/media/r3jTnU6iEwpbO/giphy.gif',
+ 'https://media.giphy.com/media/6Xbr4pVmJW4wM/giphy.gif',
+ 'https://media.giphy.com/media/FPmzkXGFVhp2U/giphy.gif',
+ 'https://media.giphy.com/media/p3yU7Rno2PvvW/giphy.gif',
+ 'https://media.giphy.com/media/vbBmb51klyyB2/giphy.gif',
+ 'https://media.giphy.com/media/ZAfpXz6fGrlYY/giphy.gif',
+ 'https://media.giphy.com/media/3oGRFvVyUdGBZeQiAw/giphy.gif',
+ 'https://media.giphy.com/media/NJbeypFZCHj2g/giphy.gif',
+ 'https://media.giphy.com/media/WpNO2ZXjhJ85y/giphy.gif',
+ 'https://media.giphy.com/media/xaw15bdmMEkgg/giphy.gif',
+ 'https://media.giphy.com/media/tLwQSHQo6hjTa/giphy.gif',
+ 'https://media.giphy.com/media/3dcoLqDDjd9pC/giphy.gif',
+ 'https://media.giphy.com/media/QFfs8ubyDkluo/giphy.gif',
+ 'https://media.giphy.com/media/10hYVVSPrSpZS0/giphy.gif',
+ 'https://media.giphy.com/media/EYJz9cfMa7WAU/giphy.gif',
+ 'https://media.giphy.com/media/Q21vzIHyTtmaQ/giphy.gif',
+ 'https://media.giphy.com/media/pzmUOeqhzJTck/giphy.gif',
+ 'https://media.giphy.com/media/G6kt1Gb4Luxy0/giphy.gif',
+ 'https://media.giphy.com/media/13wjHxAz6B6E9i/giphy.gif',
+ 'https://media.giphy.com/media/ANbbM3IzH9Tna/giphy.gif',
+ 'https://media.giphy.com/media/EQ5I7NF4BDYA/giphy.gif',
+ 'https://media.giphy.com/media/L7gHewOS8GOWY/giphy.gif',
+ 'https://media.giphy.com/media/nO16UrmQh7khW/giphy.gif',
+ 'https://media.giphy.com/media/eGuk6gQM3Q29W/giphy.gif',
+ 'https://media.giphy.com/media/8dpPMMlxmDEJO/giphy.gif',
+ 'https://media.giphy.com/media/5ox090BjCB8ME/giphy.gif',
+ 'https://media.giphy.com/media/Hzm8c1eMSq3CM/giphy.gif',
+ 'https://media.giphy.com/media/2APlzZshLu3LO/giphy.gif',
+ 'https://media.giphy.com/media/dgygjvNe7jckw/giphy.gif',
+ 'https://media.giphy.com/media/5g0mypSSPupO0/giphy.gif',
+ 'https://media.giphy.com/media/10JmxORlA6dEFW/giphy.gif',
+];
+
@Component({
template: ''
diff --git a/src/components/virtual-scroll/test/list/main.html b/src/components/virtual-scroll/test/list/main.html
index 51c7402402..50b52ec6b1 100644
--- a/src/components/virtual-scroll/test/list/main.html
+++ b/src/components/virtual-scroll/test/list/main.html
@@ -15,16 +15,25 @@
+
+
+
+
+ gulp test.imageserve
-
+
-
+
- {{item.title}}
+ {{item.id}}, top: {{itemBounds.top}}, bottom: {{itemBounds.bottom}}, height: {{itemBounds.height}}
+
+
diff --git a/src/components/virtual-scroll/test/virtual-scroll.spec.ts b/src/components/virtual-scroll/test/virtual-scroll.spec.ts
index 3ef0c6e0f4..197402615f 100644
--- a/src/components/virtual-scroll/test/virtual-scroll.spec.ts
+++ b/src/components/virtual-scroll/test/virtual-scroll.spec.ts
@@ -289,7 +289,7 @@ describe('VirtualScroll', () => {
cells, records, nodes, viewContainer,
itmTmp, hdrTmp, ftrTmp, true);
- expect(nodes.length).toBe(6);
+ expect(nodes.length).toBe(3);
expect(nodes[0].cell).toBe(2);
expect(nodes[1].cell).toBe(3);
diff --git a/src/components/virtual-scroll/virtual-item.ts b/src/components/virtual-scroll/virtual-item.ts
index 488b40a96c..dc3fdd9a82 100644
--- a/src/components/virtual-scroll/virtual-item.ts
+++ b/src/components/virtual-scroll/virtual-item.ts
@@ -1,4 +1,5 @@
import { Directive, TemplateRef, ViewContainerRef } from '@angular/core';
+import { VirtualContext } from './virtual-util';
/**
@@ -6,7 +7,7 @@ import { Directive, TemplateRef, ViewContainerRef } from '@angular/core';
*/
@Directive({selector: '[virtualHeader]'})
export class VirtualHeader {
- constructor(public templateRef: TemplateRef