17b18f631b89643f675965491b556092a00a1a4f
[framework/web/web-ui-fw.git] / tests / unit-tests / extendablelist / extendablelist-tests.js
1 /*
2  * Unit Test: Extendable list
3  *
4  * Wongi Lee <wongi11.lee@samsung.com>
5  */
6
7 $( document ).ready( function () {
8
9         module( "Extendable List");
10
11         function startExtendableListTest(){
12                 var $elContainer = $( "ul#extendable_list_main" ),
13                         $elElements = $( "ul#extendable_list_main li" ),
14                         elOptions = $( "ul#extendable_list_main" ).extendablelist( "option" );
15                 console.dir( elOptions );
16
17                 test( "Extendable list test", function () {
18                         /* Initialize and create method */
19                         ok( $elContainer );
20                         equal( $elElements.length, 51 );        /* 50 <li> items + one button. */
21
22                         /* Options */
23                         equal( elOptions.id, "#extendable_list_main" );
24                         equal( elOptions.childSelector, " li" );
25                         equal( elOptions.dbtable, "JSON_DATA" );
26                         equal( elOptions.template, "tmp-1line" );
27                         equal( elOptions.extenditems, 50 );
28                         equal( elOptions.scrollview, true );
29
30                         /* Click Load more button */
31                         ok ( ( function () {
32                                 /* Click Button  */
33                                 $( "#load_more_message" ).click();
34
35                                 $elElements = $( "ul#extendable_list_main li" );
36                                 console.log( $elElements.length );
37
38                                 try {
39                                         equal ( $elElements.length, 101 );
40                                 } catch ( exception ) {
41                                         console.log( "click load more button  : " + exception );
42                                         return false;
43                                 }
44                                 return true;
45                         }() ), "Click Load More button()" );
46
47                         ok ( ( function () {
48                                 var i = 0,
49                                         newJSON = new Array(),
50                                         newItem,
51                                         firstLI,
52                                         result = true;
53
54                                 /* make short JSON array */
55                                 for ( i = 0; i < 200; i++ ) {
56                                         newJSON.push( window.JSON_DATA[ ( i + 100 ) ] );
57                                 }
58
59                                 /* Call recreate */
60                                 $( "ul#extendable_list_main" ).extendablelist( "recreate", newJSON );
61
62                                 $elContainer = $( "ul#extendable_list_main" );
63                                 $elElements = $( "ul#extendable_list_main li" );
64
65                                 /* Check new List */
66                                 ok( $elContainer );
67                                 equal( $elElements.length, 51 );        /* 50 <li> items + one button. */
68
69                                 newItem = window.JSON_DATA[ 100 ];
70
71                                 firstLI = $( "ul#extendable_list_main li:first" );
72
73                                 try {
74                                         equal( newItem.NAME, $( firstLI ).find( "span.ui-li-text-main" ).text() );
75                                 } catch ( exception ) {
76                                         console.log( exception );
77                                         return false;
78                                 }
79
80                                 return true;
81                         }() ), "recreate()" );
82
83                         /* Destroy method */
84                         ok ( ( function () {
85                                 /* Call destroy */
86                                 $( "ul#extendable_list_main" ).extendablelist( "destroy" );
87
88                                 var destoyedelElements = $( "ul#extendable_list_main li" );
89                                 console.log( destoyedelElements.length );
90
91                                 try {
92                                         equal ( destoyedelElements.length, 0 );
93                                 } catch ( exception ) {
94                                         console.log( "destroy : " + exception );
95                                         return false;
96                                 }
97                                 return true;
98                         }() ), "destroy()" );
99                 } );
100         }
101
102         /* Load Dummy Data and Init Extendable List widget*/
103         if ( window.JSON_DATA ) {
104                 $( "ul" ).filter( function () {
105                         return $( this ).data( "role" ) == "extendablelist";
106                 } ).addClass( "elLoadSuccess" );
107
108                 // trigger pagecreate
109                 $( "#extendablelist-unit-test" ).page();
110
111                 $( "ul#extendable_list_main" ).extendablelist( "create" );
112
113                 startExtendableListTest();
114         } else {
115                 console.log ( "Extendable List Init Fail." );
116         }
117 } );