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