2 * Unit Test: Color Picker
\r
4 * Hyunjung Kim <hjnim.kim@samsung.com>
\r
7 $( "#colorpage" ).live( "pageinit", function(event){
\r
9 module("Color Picker");
\r
11 var cutHex = function( h ){ return ( h.charAt(0)=="#" ) ? h.substring(1,7):h}
\r
12 var hexToRgb = function( h ) {
\r
13 var r = parseInt((cutHex(h)).substring( 0, 2 ),16), g = parseInt((cutHex(h)).substring( 2, 4),16), b = parseInt((cutHex(h)).substring( 4, 6), 16);
\r
14 return "rgb("+r+", "+g+", "+b+")";
\r
16 var makeRandomColor = function(){
\r
17 var letters = '0123456789ABCDEF'.split('');
\r
19 for (var i = 0; i < 6; i++ ) {
\r
20 color += letters[Math.round(Math.random() * 15)];
\r
22 return color.toLowerCase();
\r
24 var colorchange = function( widget, colorcode ){
\r
25 if( widget.attr("data-color") == colorcode) return true;
\r
28 var testHsvpicker = function( widget ) {
\r
37 widget = $("#hsvpicker");
\r
39 wgSiblings = widget.siblings();
\r
40 hsvpicker = wgSiblings.last();
\r
42 ok( widget.is(":hidden") &&
\r
43 hsvpicker.hasClass("ui-hsvpicker") &&
\r
44 hsvpicker.children().length == 3
\r
45 , "Create - Hue-Saturation-Value");
\r
60 dragging_hsv = [0,0,0];
\r
62 for( i = 0 ; i < hsvpicker.children().length; i++ ){
\r
63 varArray = hsvpicker.children();
\r
64 nowvar = varArray.eq(i);
\r
65 leftbutton = nowvar.children().eq(0);
\r
66 view = nowvar.children().eq(1);
\r
67 rightbutton = nowvar.children().eq(2);
\r
68 indicator = nowvar.children().eq(1).children().eq(3);
\r
71 chan = leftbutton.find("a").attr( "data-" + ( $.mobile.ns || "" ) + "target" );
\r
72 leftbutton.find("a").trigger( "vclick" );
\r
73 if( parseInt( indicator.css("left") ) <= 0 ){
\r
78 hsvIdx = ( "hue" === chan ) ? 0 :
\r
79 ( "sat" === chan) ? 1 : 2;
\r
80 dragging_hsv = [ 0, 0, 0];
\r
83 rightbutton.children().first().trigger( "vclick" );
\r
84 width = view.first().width();
\r
85 max = ( 0 == hsvIdx ? 360 : 1 );
\r
87 dragging_hsv[hsvIdx] = dragging_hsv[hsvIdx] + step;
\r
88 dragging_hsv[hsvIdx] = Math.min( max, Math.max( 0.0, dragging_hsv[hsvIdx] ) );
\r
89 hue = varArray.eq(0).children().eq(1).children();
\r
90 val = varArray.eq(1).children().eq(1).children();
\r
91 sat = varArray.eq(2).children().eq(1).children();
\r
94 if( indicator.css("background-color") != val.last().css("background-color") ||
\r
95 indicator.css("background-color") != sat.last().css("background-color"))
\r
99 if( parseFloat( dragging_hsv[1] ).toFixed(2) != parseFloat(hue.eq(1).css("opacity")).toFixed(2) ||
\r
100 indicator.css("background-color") != sat.last().css("background-color"))
\r
104 if(parseFloat( 1 - dragging_hsv[2] ).toFixed(2) , parseFloat(hue.eq(2).css("opacity")).toFixed(2) ||
\r
105 parseFloat( 1 - dragging_hsv[2] ).toFixed(2) , parseFloat(val.eq(2).css("opacity")).toFixed(2))
\r
109 if( parseInt( indicator.css("left") ) >= parseInt( width ) || !result){
\r
115 }," Click - Color match, Hue-Saturation-Value " );
\r
117 colorcode = makeRandomColor();
\r
118 widget.hsvpicker( { color : colorcode });
\r
120 ok( colorchange(widget, colorcode),
\r
121 "Option : Color change")
\r
124 test( "Color Title" , function ( ) {
\r
130 widget = $("#colortitle");
\r
132 wgSiblings = widget.siblings();
\r
133 ok( widget.is(":hidden") &&
\r
134 wgSiblings.length == 2 &&
\r
135 wgSiblings.last().is(".ui-colortitle, .jquery-mobile-ui-widget"),
\r
136 "Create - Color Title" );
\r
138 colorHex = widget.jqmData("color");
\r
139 equal( wgSiblings.last().css("color"), hexToRgb(colorHex), "Compare - Color" );
\r
140 equal( wgSiblings.last().text().trim(), colorHex, "Compare - Text" );
\r
142 colorcode = makeRandomColor();
\r
143 widget.colortitle({ color : colorcode });
\r
145 ok( colorchange( widget, colorcode ),
\r
146 "Option : Color change");
\r
149 test( "Color palette" , function () {
\r
157 palettePrefix = ".colorpalette";
\r
159 widget = $("#colorpalette");
\r
161 wgSiblings = widget.siblings();
\r
162 palette = wgSiblings.last();
\r
163 ok( widget.is(":hidden") &&
\r
164 wgSiblings.length == 2 &&
\r
165 palette.is(".ui-colorpalette, .jquery-mobile-ui-widget"),
\r
166 "Create - Color palette" );
\r
168 if( palette.find( palettePrefix + "-preview-container").length ){
\r
169 palettePreview = palette.find( palettePrefix +"-preview-container");
\r
171 colorChoice = palette.find( palettePrefix + "-table").children().find( "div[class^='colorpalette-choice-container-']" );
\r
172 equal( colorChoice.length ,
\r
173 palette.jqmData("n-choices") , "Count - Color choice container" );
\r
178 for(i = 0 ; i < colorChoice.length; i++ ){
\r
179 $(colorChoice[i]).children().trigger("vclick");
\r
180 if( palettePreview.children().css("background-color") == $(colorChoice[i]).children().css("background-color") ){
\r
186 }, "Click - Palette Active check" );
\r
188 colorcode = makeRandomColor();
\r
189 widget.colorpalette({ color: colorcode });
\r
191 ok( colorchange( widget, colorcode ),
\r
192 "Option : Color change");
\r
195 test( "Color picker button-noform" , function () {
\r
203 widget = $("#colorpickerbutton-noform");
\r
204 widget.colorpickerbutton();
\r
205 wgSiblings = widget.siblings();
\r
206 colorpickerbutton = wgSiblings.last();
\r
208 ok( widget.is(":hidden") &&
\r
209 wgSiblings.last().jqmData("role") == "button" &&
\r
210 wgSiblings.last().attr("aria-haspopup") == "true",
\r
211 "Create - Color picker" );
\r
213 widget.colorpickerbutton("open");
\r
214 popwindow = $("#colorpage").children().last();
\r
216 ok( parseInt( popwindow.css("top") ) > 0, "Open - Popupwindow");
\r
217 hsvpicker = popwindow.children().children().first();
\r
218 testHsvpicker(hsvpicker);
\r
220 widget.colorpickerbutton("close");
\r
221 equal( hexToRgb( hsvpicker.jqmData("color") ),
\r
222 colorpickerbutton.children().children().children().css("color") );
\r
224 colorcode = makeRandomColor();
\r
225 widget.colorpicker({ color: colorcode });
\r
227 ok( colorchange( widget, colorcode ),
\r
228 "Option : Color change");
\r
231 test( "Hue-Saturation-Value" , function () {
\r
232 testHsvpicker( "#hsvpicker" );
\r
235 test( "Hue-Saturation-Lightnewss" , function() {
\r
241 widget = $("#colorpicker");
\r
242 widget.colorpicker();
\r
243 wgSiblings = widget.siblings();
\r
244 colorpicker = wgSiblings.last();
\r
246 ok( widget.is(":hidden") &&
\r
247 colorpicker.hasClass("ui-colorpicker") &&
\r
248 colorpicker.children().length == 3
\r
249 , "Create - Hue-Saturation-Lightness");
\r
251 colorcode = makeRandomColor();
\r
252 widget.colorpicker({ color: colorcode });
\r
254 ok( colorchange( widget, colorcode ),
\r
255 "Option : Color change");
\r