UnitTC: Additional unit testcases have been added
[platform/framework/web/web-ui-fw.git] / tests / additional-unit-tests / progressbar / progressbar-tests.js
1 /*
2  * Unit Test : Progressbar
3  *
4  * Minkyu Kang <mk7.kang@samsung.com>
5  */
6 /*jslint browser: true*/
7 /*global $, jQuery, test, equal, ok*/
8 ( function ( $ ) {
9         module("Progressbar" );
10
11         var unit_progressbar = function ( widget ) {
12                 var progress,
13                         i,
14                         value,
15                         get_width = function ( widget ) {
16                                 return widget.progressbar( "option", "value" );
17                         },
18                         changeEvent = false ;
19
20                 widget.bind('change', function ( ) {
21                         changeEvent = true ;
22                 } );
23                 widget.progressbar( );
24
25                 /* Create */
26                 equal( widget.hasClass("ui-progressbar" ), true, "Create" );
27
28                 /*markup check */
29                 ok( widget.find(".ui-progressbar-bg" ), "Markup check" );
30                 ok( widget.find(".ui-progressbar-value" ), "Markup check" );
31
32                 /* Value */
33                 for ( i = 0; i < 5; i++ ) {
34                         value = Math.floor( Math.random( ) * 100 );
35                         widget.progressbar( "option", "value", value );
36                         equal( changeEvent, true, "Change Event : " );
37                         equal( get_width( widget ), value, "API : value" );
38                         equal( parseInt( widget.find(".ui-progressbar-value" ).css('width'), 10 ) - parseInt( widget.find(".ui-progressbar-bg" ).css('width'), 10 ) * value / 100 < 5, true , "Markup check after value is changed" );
39                         changeEvent = false ;
40                 }
41         },
42
43                 unit_progress = function ( widget, type ) {
44                         var progress,
45                                 elem = ".ui-progress-" + type,
46                                 _class = "ui-progress-" + type + "-running";
47
48                         widget.progress( );
49
50                         /* Create */
51                         progress = widget.find( elem );
52                         ok( progress, "Create" );
53
54                         /* Option */
55                         equal( widget.progress( "option", "style" ), type, "Option : style" );
56
57                         /* Running */
58                         widget.progress( "running", true );
59                         progress = widget.find( elem );
60                         equal( progress.hasClass( _class ), true, "API : running" );
61
62                         /* Stop */
63                         widget.progress( "running", false );
64                         progress = widget.find( elem );
65                         equal( progress.hasClass( _class ), false, "API : stop" );
66                 };
67
68         test( "progressbar", function ( ) {
69                 unit_progressbar( $("#progressbar" ) );
70         } );
71
72         test( "pending bar", function ( ) {
73                 unit_progress( $("#pending" ), "pending" );
74         } );
75
76         test( "processing circle", function ( ) {
77                 unit_progress( $("#progressing" ), "circle" );
78         } );
79
80
81         test( "progressbar - dynamic", function ( ) {
82
83                 $('#progressbar_demo').find(":jqmData(role=contents)" ).empty( );
84                 var markup = ' <div data-role= "progressbar" id= "progressbar"></div>';
85                 $('#progressbar_demo').find(":jqmData(role=contents)" ).append( markup ).trigger('create') ;
86                 unit_progressbar( $("#progressbar" ) );
87         } );
88
89         test( "pending bar - dynamic", function ( ) {
90                 $('#progressbar_demo').find(":jqmData(role=contents)" ).empty( );
91                 var markup = ' <div data-role= "progressing" data-style= "pending" id= "pending"></div>';
92                 $('#progressbar_demo').find(":jqmData(role=contents)" ).append( markup ).trigger('create') ;
93
94                 unit_progress( $("#pending" ), "pending" );
95         } );
96
97         test( "processing circle - dynamic", function ( ) {
98                 $('#progressbar_demo').find(":jqmData(role=contents)" ).empty( );
99                 var markup = ' <div data-role= "progressing" data-style= "circle" id= "progressing"></div>';
100                 $('#progressbar_demo').find(":jqmData(role=contents)" ).append( markup ).trigger('create') ;
101
102                 unit_progress( $("#progressing" ), "circle" );
103         } );
104 } ( jQuery ) );