UnitTC: Additional unit testcases have been added
[platform/framework/web/web-ui-fw.git] / tests / additional-unit-tests / slider / slider-tests.js
1 /*
2  * Unit Test : Slider
3  *
4  * Minkyu Kang <mk7.kang@samsung.com>
5  */
6 /*jslint browser: true*/
7 /*global $, jQuery, test, equal, ok*/
8 $( document ).ready( function ( ) {
9         module("Slider" );
10         QUnit.config.reorder = false;
11         var unit_slider = function ( widget , options ) {
12                 var slider,
13                         popup,
14                         oldValue,
15                         slider_bg = function ( widget ) {
16                                 return "ui-slider-container";
17                         },
18                         handle,
19                         handle_left = function ( widget, slider ) {
20                                 var left = widget.val() * slider.width() /
21                                         ( widget.attr("max") - widget.attr("min") );
22                                 return Math.floor( left );
23                         },
24                         random_move = function ( min, max ) {
25                                 return Math.floor( ( Math.random( ) * ( max - min + 1 ) ) + min );
26                         },
27                         checkEquality = function ( val1, val2 ) {
28                                 return ( parseInt( val1, 10 ) - parseInt( val2, 10 ) ) < 5 ? true : false ;
29                         };
30
31                 /* Create */
32                 widget.tizenslider( );
33                 slider = widget.next( ).children(".ui-slider" );
34                 ok( slider, "Create" );
35
36                 /* Check Background */
37                 equal( slider.parent( ).attr("class" ), slider_bg( widget ), "Background" );
38
39                 /* Check Parameters */
40                 handle = slider.find(".ui-slider-handle" );
41
42                 equal( handle.attr("aria-valuenow" ), widget.val( ), "Paramter : value" );
43                 equal( handle.attr("aria-valuemin" ), widget.attr("min" ), "Paramter : min" );
44                 equal( handle.attr("aria-valuemax" ), widget.attr("max" ), "Paramter : max" );
45
46                 equal( parseInt( handle.css("left") ), handle_left( widget, slider ), "Handle Location: Default" );
47
48                 /* Check APIs */
49                 widget.val( random_move( widget.attr("min" ), widget.attr("max" ) ) );
50                 widget.trigger("change" );
51                 equal( parseInt( handle.css("left") ), handle_left( widget, slider ), "Handle Location: Moved" );
52                 if ( widget.jqmData('popup') == true ) {
53                         popup = slider.find(".ui-slider-handle-press" );
54                         ok( popup, "Popup present" );
55                         equal( checkEquality( popup.css("left" ), handle_left( widget, handle ) ) , true, "popup value check Enabled" );
56                 }
57
58                 /*jqm data*/
59                 if ( options && options.leftText ) {
60                         equal( widget.jqmData('text-left'), options.leftText, "jqmData left text" );
61                 }
62                 if ( options && options.rightText ) {
63                         equal( widget.jqmData('text-right'), options.rightText, "jqmData right text" );
64                 }
65                 if ( options && options.icon ) {
66                         equal( widget.jqmData('icon'), options.icon, "jqmData icon" );
67                 }
68
69         };
70
71         test( "normal slider", function ( ) {
72                 $('#sliderpage1').page( ) ;
73                 unit_slider( $("#slider0" ) );
74         } );
75
76         test( "icon slider", function ( ) {
77                 $('#sliderpage2').page( ) ;
78                 unit_slider( $("#slider1" ) );
79         } );
80
81 } );