1# -*- coding: utf-8 -*- 2import os 3import sys 4import time 5import test_utils 6import test_constants 7 8test_pixelmap_edit_output_files = [ 9"test_pixelmap_edit_resources.c", 10"test_pixelmap_edit_resources.h"] 11 12test_batch_pixelmap_edit_output_files = [ 13"test_batch_pixelmap_edit_folder_2_resource.c", 14"test_batch_pixelmap_edit_folder_3_resource.c", 15"test_batch_pixelmap_edit_folder_4_resource.c", 16"test_batch_pixelmap_edit_resources.c", 17"test_batch_pixelmap_edit_resources.h"] 18 19test_synergy_pixelmap_edit_output_files = [ 20"test_synergy_pixelmap_edit_resources.c", 21"test_synergy_pixelmap_edit_resources.h"] 22 23test_pixelmap_folder_enable_disable_output_files = [ 24"test_pixelmap_folder_enable_disable_resources.c", 25"test_pixelmap_folder_enable_disable_resources.h"] 26 27test_pixelmap_group_enable_output_files = [ 28"test_pixelmap_group_enable_resources.c", 29"test_pixelmap_group_enable_resources.h"] 30 31test_pixelmap_group_disable_output_files = [ 32"test_pixelmap_group_disable_resources.c", 33"test_pixelmap_group_disable_resources.h"] 34 35display_name = "main_display" 36screen_name = "window" 37 38def get_test_header(): 39 notes = "* Studio Add/Edit Pixelmap Test *\n" 40 notes += "* *\n" 41 notes += "* Test duplicate pixelmap add *\n" 42 notes += "* Test synergy pixelmap edit *\n" 43 notes += "* Test batch pixelmap edit *\n" 44 notes += "* Test pixelmap folder enable disable *\n" 45 notes += "* Test pixelmap group enable disable *\n" 46 47def run_new_project_create(project_name): 48 49 # create a new project 50 test_utils.toolbar_create() 51 test_utils.set_new_project_path(test_utils.DEFAULT_OUTPUT_FILE_PATH) 52 test_utils.set_new_project_name(project_name) 53 test_utils.save_new_project_create() 54 55 # configure project 56 test_utils.configure_project() 57 test_utils.configure_x_res(640) 58 test_utils.configure_y_res(480) 59 test_utils.configure_display_name(display_name) 60 test_utils.configure_display_color_format('GX_COLOR_FORMAT_24XRGB') 61 test_utils.save_project_configure() 62 63 # close message dialog when create new 64 test_utils.close_message_dialog() 65 66def run_duplicate_pixlemap_add(): 67 test_utils.add_pixelmaps('Custom', '..\\pixelmaps\\', 'save_icon.png,yellow_bg.png') 68 test_utils.add_pixelmaps('Custom', '..\\pixelmaps\\', 'save_icon.png,yellow_bg.png', test_utils.CLOSE_NO_WAIT) 69 70 test_utils.click_yes_to_please_confirm_dialog() 71 test_utils.click_no_to_please_confirm_dialog() 72 73def run_synergy_pixelmap_edit(): 74 test_utils.open_project('synergy_16bpp.gxp'); 75 test_utils.add_pixelmaps('Custom', '..\\pixelmaps\\', 'fish_small_411.jpg'); 76 test_utils.edit_pixelmap('FISH_SMALL_411'); 77 test_utils.check_raw_format(1, test_utils.CLOSE_ERROR_MSG); # Test crash when edit raw format 78 test_utils.cancel_pixelmap_edit(); 79 test_utils.edit_pixelmap('_565RGB_COMPRESSED_FISH') 80 test_utils.check_raw_format(1, test_utils.CLOSE_ERROR_MSG); # Test crash when edit raw format 81 test_utils.cancel_pixelmap_edit(); 82 test_utils.close_project() 83 84 # create a new project 85 test_utils.toolbar_create() 86 test_utils.set_new_project_path(test_utils.DEFAULT_OUTPUT_FILE_PATH) 87 test_utils.set_new_project_name('test_synergy_pixelmap_edit') 88 test_utils.save_new_project_create() 89 90 # configure project 91 test_utils.configure_project() 92 test_utils.configure_x_res(640) 93 test_utils.configure_y_res(480) 94 test_utils.configure_display_name(display_name) 95 test_utils.configure_cpu_type('synergy') 96 test_utils.configure_display_color_format('GX_COLOR_FORMAT_32ARGB') 97 test_utils.save_project_configure() 98 99 # close message dialog when create new 100 test_utils.close_message_dialog() 101 102 test_utils.add_pixelmaps('Custom', '..\\pixelmaps\\', 'i_patientlist_lg.png') 103 test_utils.edit_pixelmap('I_PATIENTLIST_LG') 104 test_utils.check_alpha(0) 105 test_utils.check_alpha(1) 106 test_utils.save_pixelmap_edit() 107 108def run_batch_pixelmap_edit(): 109 test_utils.add_pixelmap_folder() 110 test_utils.set_folder_name('folder_1') 111 test_utils.save_folder_name_edit() 112 113 test_utils.add_pixelmap_folder() 114 test_utils.set_folder_name('folder_2') 115 test_utils.save_folder_name_edit() 116 117 test_utils.add_pixelmap_folder() 118 test_utils.set_folder_name('folder_3') 119 test_utils.save_folder_name_edit() 120 121 test_utils.add_pixelmap_folder() 122 test_utils.set_folder_name('folder_4') 123 test_utils.save_folder_name_edit() 124 125 test_utils.add_pixelmaps('folder_1', '..\\pixelmaps\\', 'save_icon.png') 126 test_utils.add_pixelmaps('folder_2', '..\\pixelmaps\\', 'save_icon.png,yellow_bg.png') 127 test_utils.click_yes_to_please_confirm_dialog() 128 test_utils.add_pixelmaps('folder_3', '..\\pixelmaps\\', 'black_pause.png,button_disabled.png') 129 test_utils.add_pixelmaps('folder_4', '..\\pixelmaps\\', 'collapse.png,expand.png') 130 131 test_utils.click_pixelmap_folder('CUSTOM_PIXELMAP_FOLDER', 'folder_1') 132 test_utils.edit_pixelmaps() 133 test_utils.check_alpha(1) 134 test_utils.save_pixelmap_edit() 135 136 test_utils.click_pixelmap_folder('CUSTOM_PIXELMAP_FOLDER', 'folder_2') 137 test_utils.edit_pixelmaps() 138 test_utils.check_custom_output(1) 139 test_utils.set_custom_output_file("test_batch_pixelmap_edit_folder_2_resource.c") 140 test_utils.set_output_format('GX_COLOR_FORMAT_565RGB') 141 test_utils.save_pixelmap_edit() 142 143 test_utils.edit_pixelmap('BLACK_PAUSE') 144 test_utils.set_output_format('GX_COLOR_FORMAT_565RGB') 145 test_utils.save_pixelmap_edit() 146 147 test_utils.click_pixelmap_folder('CUSTOM_PIXELMAP_FOLDER', 'folder_3') 148 test_utils.edit_pixelmaps() 149 test_utils.check_custom_output(1) 150 test_utils.set_custom_output_file("test_batch_pixelmap_edit_folder_3_resource.c") 151 test_utils.check_alpha(0) 152 test_utils.check_compress(0) 153 test_utils.check_dither(1) 154 test_utils.save_pixelmap_edit() 155 156 test_utils.click_pixelmap_folder('DEFAULT_PIXELMAP_FOLDER', 'System') 157 test_utils.edit_pixelmaps() 158 test_utils.set_output_format('GX_COLOR_FORMAT_8BIT_PALETTE') 159 test_utils.set_palette_type('PALETTE_TYPE_PRIVATE') 160 test_utils.save_pixelmap_edit() 161 162 test_utils.click_pixelmap_folder('CUSTOM_PIXELMAP_FOLDER', 'folder_4') 163 test_utils.edit_pixelmaps() 164 test_utils.check_custom_output(1) 165 test_utils.set_custom_output_file("test_batch_pixelmap_edit_folder_4_resource.c") 166 test_utils.check_raw_format(1) 167 test_utils.check_alpha(1) 168 test_utils.check_compress(1) 169 test_utils.check_dither(1) 170 test_utils.save_pixelmap_edit() 171 172def run_pixelmap_folder_enable_disable(): 173 # create a new project 174 run_new_project_create('test_pixelmap_folder_enable_disable') 175 176 test_utils.add_pixelmap_folder() 177 test_utils.set_folder_name('folder_1') 178 test_utils.save_folder_name_edit() 179 180 test_utils.add_pixelmap_folder() 181 test_utils.set_folder_name('folder_2') 182 test_utils.save_folder_name_edit() 183 184 test_utils.add_pixelmap_folder() 185 test_utils.set_folder_name('folder_3') 186 test_utils.save_folder_name_edit() 187 188 test_utils.add_pixelmaps('folder_1', '..\\pixelmaps\\', 'save_icon.png,yellow_bg.png') 189 test_utils.add_pixelmaps('folder_2', '..\\pixelmaps\\', 'black_pause.png,button_disabled.png') 190 test_utils.add_pixelmaps('folder_3', '..\\pixelmaps\\', 'bg_title.png') 191 192 # disable default pixelmap folder 193 test_utils.click_pixelmap_folder('DEFAULT_PIXELMAP_FOLDER', 'System') 194 test_utils.disable_pixelmap_folder() 195 196 # disable 'SAVE_ICON' under 'folder_1', enable 'folder_1' 197 test_utils.disable_pixelmap('SAVE_ICON') 198 test_utils.click_pixelmap_folder('CUSTOM_PIXELMAP_FOLDER', 'folder_1') 199 test_utils.enable_pixelmap_folder() 200 201 # disable 'folder_2' 202 test_utils.click_pixelmap_folder('CUSTOM_PIXELMAP_FOLDER', 'folder_2') 203 test_utils.disable_pixelmap_folder() 204 205 #generate output files and compare result with golden files 206 test_utils.toolbar_save() 207 test_utils.generate_all() 208 test_utils.click_generate_button() 209 test_utils.cmp_output_files(test_pixelmap_folder_enable_disable_output_files) 210 211def run_pixelmap_group_enable(): 212 # create a new project 213 run_new_project_create('test_pixelmap_group_enable') 214 215 test_utils.click_resource_group('PIXELMAP_GROUP') 216 test_utils.disable_pixelmap('CHECKBOX_OFF') 217 test_utils.enable_pixelmap_folder() 218 219 #generate output files and compare result with golden files 220 test_utils.toolbar_save() 221 test_utils.generate_all() 222 test_utils.click_generate_button() 223 test_utils.cmp_output_files(test_pixelmap_group_enable_output_files) 224 225def run_pixelmap_group_disable(): 226 # create a new project 227 run_new_project_create('test_pixelmap_group_disable') 228 229 test_utils.click_resource_group('PIXELMAP_GROUP') 230 test_utils.disable_pixelmap_folder() 231 232 #generate output files and compare result with golden files 233 test_utils.toolbar_save() 234 test_utils.generate_all() 235 test_utils.click_generate_button() 236 test_utils.cmp_output_files(test_pixelmap_group_disable_output_files) 237 238def run_pixelmap_folder_delete(): 239 print('create new project') 240 run_new_project_create('test_pixelmap_folder_delete') 241 242 test_utils.add_pixelmap_folder() 243 test_utils.set_folder_name('folder_1') 244 test_utils.save_folder_name_edit() 245 246 test_utils.add_pixelmap_folder() 247 test_utils.set_folder_name('folder_2') 248 test_utils.save_folder_name_edit() 249 250 test_utils.add_pixelmap_folder() 251 test_utils.set_folder_name('sprite') 252 test_utils.save_folder_name_edit() 253 254 test_utils.add_pixelmap_folder() 255 test_utils.set_folder_name('scrollbar') 256 test_utils.save_folder_name_edit() 257 258 test_utils.add_pixelmaps('folder_1', '..\\pixelmaps\\', 'save_icon.png,yellow_bg.png,tfield_fill_small.png,wheel_dot_green.png,top_bar_background.png') 259 test_utils.add_pixelmaps('folder_2', '..\\pixelmaps\\', 'black_pause.png,collapse.png,expand.png,fill.png,i_emptyfill_middle.png') 260 test_utils.add_pixelmaps('sprite', '..\\pixelmaps\\', 'frame_000.png,frame_001.png') 261 test_utils.add_pixelmaps('sprite', '..\\pixelmaps\\gif\\', 'sprite.gif') 262 test_utils.add_pixelmaps('scrollbar', '..\\pixelmaps\\', 'i_emptyfill_top.png,i_indicator.png,i_orangefill_bottom.png,i_orangefill_middle.png') 263 264 #add icon 265 test_utils.select_project_tree_node(screen_name) 266 test_utils.edit_widget_props("ID_WIDTH", 640) 267 test_utils.edit_widget_props("ID_HEIGHT", 480) 268 269 test_utils.add_widget('GX_TYPE_ICON') 270 test_utils.edit_widget_props("ID_XPOS", 32) 271 test_utils.edit_widget_props("ID_YPOS", 18) 272 test_utils.edit_widget_props("ID_PIXELMAP_0", "SAVE_ICON") 273 274 test_utils.select_project_tree_node(screen_name) 275 test_utils.add_widget('GX_TYPE_ICON') 276 test_utils.edit_widget_props("ID_XPOS", 89) 277 test_utils.edit_widget_props("ID_YPOS", 18) 278 test_utils.edit_widget_props("ID_PIXELMAP_0", "TFIELD_FILL_SMALL") 279 280 test_utils.select_project_tree_node(screen_name) 281 test_utils.add_widget('GX_TYPE_ICON') 282 test_utils.edit_widget_props("ID_XPOS", 148) 283 test_utils.edit_widget_props("ID_YPOS", 18) 284 test_utils.edit_widget_props("ID_PIXELMAP_0", "TOP_BAR_BACKGROUND") 285 286 test_utils.select_project_tree_node(screen_name) 287 test_utils.add_widget('GX_TYPE_ICON') 288 test_utils.edit_widget_props("ID_XPOS", 219) 289 test_utils.edit_widget_props("ID_YPOS", 18) 290 test_utils.edit_widget_props("ID_PIXELMAP_0", "WHEEL_DOT_GREEN") 291 292 test_utils.select_project_tree_node(screen_name) 293 test_utils.add_widget('GX_TYPE_ICON') 294 test_utils.edit_widget_props("ID_XPOS", 483) 295 test_utils.edit_widget_props("ID_YPOS", 111) 296 test_utils.edit_widget_props("ID_PIXELMAP_0", "YELLOW_BG") 297 298 test_utils.select_project_tree_node(screen_name) 299 test_utils.add_widget('GX_TYPE_ICON') 300 test_utils.edit_widget_props("ID_XPOS", 32) 301 test_utils.edit_widget_props("ID_YPOS", 111) 302 test_utils.edit_widget_props("ID_PIXELMAP_0", "BLACK_PAUSE") 303 304 test_utils.select_project_tree_node(screen_name) 305 test_utils.add_widget('GX_TYPE_ICON') 306 test_utils.edit_widget_props("ID_XPOS", 89) 307 test_utils.edit_widget_props("ID_YPOS", 111) 308 test_utils.edit_widget_props("ID_PIXELMAP_0", "COLLAPSE") 309 310 test_utils.select_project_tree_node(screen_name) 311 test_utils.add_widget('GX_TYPE_ICON') 312 test_utils.edit_widget_props("ID_XPOS", 148) 313 test_utils.edit_widget_props("ID_YPOS", 111) 314 test_utils.edit_widget_props("ID_PIXELMAP_0", "EXPAND") 315 316 test_utils.select_project_tree_node(screen_name) 317 test_utils.add_widget('GX_TYPE_ICON') 318 test_utils.edit_widget_props("ID_XPOS", 219) 319 test_utils.edit_widget_props("ID_YPOS", 111) 320 test_utils.edit_widget_props("ID_PIXELMAP_0", "FILL") 321 322 test_utils.select_project_tree_node(screen_name) 323 test_utils.add_widget('GX_TYPE_ICON') 324 test_utils.edit_widget_props("ID_XPOS", 300) 325 test_utils.edit_widget_props("ID_YPOS", 111) 326 test_utils.edit_widget_props("ID_PIXELMAP_0", "I_EMPTYFILL_MIDDLE") 327 328 #add and edti sprite 329 test_utils.select_project_tree_node(screen_name) 330 test_utils.add_widget('GX_TYPE_SPRITE') 331 test_utils.edit_widget_props("ID_XPOS", 184) 332 test_utils.edit_widget_props("ID_YPOS", 228) 333 test_utils.edit_widget_props_post('ID_SPRITE_EDIT_FRAMES', 1) 334 test_utils.wait_dialog_open(test_utils.SPRITE_FRAME_EDIT_DIALOG) 335 test_utils.edit_sprite_total_frames(2) 336 test_utils.edit_sprite_frame(1, 'FRAME_000') 337 test_utils.edit_sprite_frame_alpha(255) 338 test_utils.edit_sprite_frame(2, 'FRAME_001') 339 test_utils.save_sprite_frame_edit() 340 341 # add second sprite widget 342 test_utils.select_project_tree_node(screen_name) 343 test_utils.add_widget('GX_TYPE_SPRITE') 344 test_utils.edit_widget_props("ID_XPOS", 47) 345 test_utils.edit_widget_props("ID_YPOS", 228) 346 test_utils.edit_widget_props("ID_PIXELMAP_0", 'SPRITE') 347 348 # add vertical scrollbar 349 test_utils.select_project_tree_node(screen_name) 350 test_utils.add_widget('GX_TYPE_VERTICAL_SCROLL') 351 test_utils.edit_widget_props('ID_PIXELMAP_0', 'I_ORANGEFILL_MIDDLE') 352 test_utils.edit_widget_props('ID_PIXELMAP_1', 'I_INDICATOR') 353 test_utils.edit_widget_props('ID_PIXELMAP_2', 'I_EMPTYFILL_TOP') 354 test_utils.edit_widget_props('ID_PIXELMAP_3', 'I_ORANGEFILL_BOTTOM') 355 test_utils.edit_widget_props('ID_SCROLL_END_BUTTONS', 0) 356 test_utils.edit_widget_props('ID_SCROLL_TILE_BKGND', 1) 357 358 test_utils.compare_result() 359 360 test_utils.toolbar_save() 361 362 test_utils.remove_pixelmap_folder('folder_1') 363 364 test_utils.compare_result() 365 366def run_pixelmap_edit_tests(generate, screenshot): 367 368 test_utils.output_test_header(get_test_header()) 369 test_utils.setup(generate, screenshot, 'test_pixlemap_edit_golden_file') 370 371 print('create new project') 372 run_new_project_create('test_pixelmap_edit') 373 374 print('test duplicate pixlemap add') 375 run_duplicate_pixlemap_add() 376 377 #generate output files and compare result with golden files 378 test_utils.toolbar_save() 379 test_utils.generate_all() 380 test_utils.click_generate_button() 381 test_utils.cmp_output_files(test_pixelmap_edit_output_files) 382 383 print('test synergy pixelmap edit') 384 run_synergy_pixelmap_edit() 385 386 #generate output files and compare result with golden files 387 test_utils.toolbar_save() 388 test_utils.generate_all() 389 test_utils.click_generate_button() 390 test_utils.cmp_output_files(test_synergy_pixelmap_edit_output_files) 391 392 print('create new project') 393 run_new_project_create('test_batch_pixelmap_edit') 394 395 print('test batch pixelmap edit') 396 run_batch_pixelmap_edit() 397 398 #generate output files and compare result with golden files 399 test_utils.toolbar_save() 400 test_utils.generate_all() 401 test_utils.click_generate_button() 402 test_utils.cmp_output_files(test_batch_pixelmap_edit_output_files) 403 404 print('test pixelmap folder enable disable') 405 run_pixelmap_folder_enable_disable() 406 407 print('test pixelmap group enable') 408 run_pixelmap_group_enable() 409 410 print('test pixelmap group disable') 411 run_pixelmap_group_disable() 412 413 print('test pixelmap folder delete') 414 run_pixelmap_folder_delete() 415 416 test_utils.write_end('Pixelmap Edit Tests') 417