1+ import { assert } from "./test-config" ;
2+ import {
3+ ElementRef ,
4+ Component
5+ } from 'angular2/core' ;
6+ import { TestApp } from "./test-app" ;
7+
8+ class DataItem {
9+ constructor ( public id : number , public name : string ) { }
10+ }
11+
12+ @Component ( {
13+ selector : 'list-view-setupItemView' ,
14+ template : `
15+ <StackLayout>
16+ <ListView height="200" [items]="myItems" (setupItemView)="onSetupItemView($event)">
17+ <template #item="item" #i="index" #odd="odd" #even="even">
18+ <StackLayout [class.odd]="odd" [class.even]="even">
19+ <Label [text]='"index: " + i'></Label>
20+ <Label [text]='"[" + item.id +"] " + item.name'></Label>
21+ </StackLayout>
22+ </template>
23+ </ListView>
24+ </StackLayout>
25+ `
26+ } )
27+ export class TestListViewComponent {
28+ public myItems : Array < DataItem > ;
29+ public counter : number ;
30+
31+ constructor ( public elementRef : ElementRef ) {
32+ this . counter = 0 ;
33+ this . myItems = [ ] ;
34+ for ( var i = 0 ; i < 2 ; i ++ ) {
35+ this . myItems . push ( new DataItem ( i , "data item " + i ) ) ;
36+ }
37+ }
38+
39+ onSetupItemView ( args ) {
40+ this . counter ++ ;
41+ }
42+ }
43+
44+ describe . only ( 'ListView-tests' , ( ) => {
45+ let testApp : TestApp = null ;
46+
47+ before ( ( ) => {
48+ return TestApp . create ( ) . then ( ( app ) => {
49+ testApp = app ;
50+ } )
51+ } ) ;
52+
53+ after ( ( ) => {
54+ testApp . dispose ( ) ;
55+ } ) ;
56+
57+ afterEach ( ( ) => {
58+ testApp . disposeComponents ( ) ;
59+ } ) ;
60+
61+ it ( 'setupItemView is called for every item' , ( done ) => {
62+ return testApp . loadComponent ( TestListViewComponent ) . then ( ( componentRef ) => {
63+ const componentRoot = componentRef . instance . elementRef . nativeElement ;
64+ const component = componentRef . instance ;
65+ const listView = componentRoot . getChildAt ( 0 ) ;
66+
67+ setTimeout ( ( ) => {
68+ assert . equal ( component . counter , 2 ) ;
69+ done ( ) ;
70+ } , 20 ) ;
71+ } ) ;
72+ } ) ;
73+ } ) ;
0 commit comments