1import os 2import sys 3import time 4import test_utils 5import test_constants 6 7theme_names = ['theme0', 'theme1', 'theme2'] 8bad_theme_name = "#badname" 9 10multi_themes_output_files = [ 11"multi_themes_resources.c", 12"multi_themes_resources.h", 13"multi_themes_specifications.c", 14"multi_themes_specifications.h", 15"multi_themes_resources_big_endian.c", 16"multi_themes_resources_big_endian.h"] 17 18def get_test_header(): 19 20 notes = "* Studio Multi Themes Tests *\n" 21 notes += "* *\n" 22 notes += "* Add and Edit multiple themes *\n" 23 notes += "* Little endian source format resource generation *\n" 24 notes += "* Big endian source format resource generation *\n" 25 notes += "* Binary format generation *\n" 26 notes += "* Test if delete pixelmap folder is in sync *\n" 27 notes += "* Test if add pixelmap folder is in sync *\n" 28 notes += "* Test if edit pixelmap folder name is in sync *\n" 29 return notes 30 31def run_new_project_create(name): 32 # create a new project 33 test_utils.toolbar_create() 34 test_utils.set_new_project_path(test_utils.DEFAULT_OUTPUT_FILE_PATH) 35 test_utils.set_new_project_name(name) 36 test_utils.save_new_project_create() 37 38 # configure project 39 test_utils.configure_project() 40 test_utils.configure_x_res(640) 41 test_utils.configure_y_res(480) 42 test_utils.configure_display_name('display_1') 43 test_utils.configure_canvas_allocate(0); 44 test_utils.save_project_configure() 45 46 # close message dialog when create new and delete default folder 47 test_utils.close_message_dialog() 48 test_utils.select_project_tree_node("default_folder") 49 test_utils.delete_folder(0) 50 51 # configure languages 52 test_utils.configure_languages() 53 test_utils.add_language() 54 test_utils.add_language() 55 test_utils.select_language_index(2) 56 test_utils.select_language_id('Latin') 57 test_utils.select_language_index(3) 58 test_utils.select_language_id('French') 59 test_utils.save_language_configure() 60 61 test_utils.toolbar_save() 62 63def run_configure_themes(): 64 test_utils.configure_themes() 65 test_utils.select_display_name('display_1') 66 test_utils.add_theme() 67 test_utils.add_theme() 68 69 # bad name testing 70 test_utils.select_theme_index(2) 71 test_utils.set_theme_name(bad_theme_name) 72 test_utils.post_select_theme_index(3) 73 # a message will popup to notify that the theme name is 74 # not meet ANSCII C name rules 75 test_utils.close_message_dialog() 76 77 test_utils.post_select_theme_index(1) 78 test_utils.close_message_dialog() 79 80 test_utils.save_theme_configure(test_utils.CLOSE_NO_WAIT) 81 test_utils.close_message_dialog() 82 test_utils.set_theme_name("theme_name") 83 84 for theme in theme_names: 85 test_utils.select_theme_index(theme_names.index(theme) + 1) 86 test_utils.set_theme_name(theme) 87 88 test_utils.save_theme_configure() 89 90def set_active_theme(theme_name): 91 test_utils.configure_themes() 92 test_utils.set_active_theme(theme_name) 93 test_utils.save_theme_configure() 94 95def run_add_resources(): 96 # add font Vera.ttf 97 test_utils.click_resource_group('FONT_GROUP') 98 test_utils.add_font() 99 test_utils.set_font_path('..\\..\\fonts\\Vera.ttf') 100 test_utils.set_font_name('BIG_FONT') 101 test_utils.set_font_format('GX_FONT_FORMAT_8BPP') 102 test_utils.set_font_height(30) 103 test_utils.save_font_edit() 104 105 test_utils.add_font() 106 test_utils.set_font_path('..\\..\\fonts\\Vera.ttf') 107 test_utils.set_font_name('SMALL_FONT') 108 test_utils.set_font_format('GX_FONT_FORMAT_8BPP') 109 test_utils.set_font_height(10) 110 test_utils.save_font_edit() 111 112 test_utils.click_resource_group('FONT_GROUP') 113 114 # add color 115 test_utils.click_resource_group('COLOR_GROUP') 116 test_utils.add_color() 117 test_utils.set_color_name('GREEN') 118 test_utils.set_color_red(102) 119 test_utils.set_color_green(201) 120 test_utils.set_color_blue(159) 121 test_utils.save_color_edit() 122 123 test_utils.add_color() 124 test_utils.set_color_name('RED') 125 test_utils.set_color_red(216) 126 test_utils.set_color_green(121) 127 test_utils.set_color_blue(140) 128 test_utils.save_color_edit() 129 test_utils.click_resource_group('COLOR_GROUP') 130 131 #Add pixelmap folder 132 test_utils.add_pixelmap_folder() 133 test_utils.set_folder_name('folder_2') 134 test_utils.save_folder_name_edit() 135 136 test_utils.add_pixelmap_folder() 137 test_utils.set_folder_name('folder_3') 138 test_utils.save_folder_name_edit() 139 140 #Add pixelmaps 141 test_utils.click_resource_group('PIXELMAP_GROUP') 142 test_utils.add_pixelmaps('Custom', '..\\pixelmaps\\', 'save_icon.png') 143 test_utils.add_pixelmaps('folder_2', '..\\pixelmaps\\', 'orange_button.png') 144 test_utils.add_pixelmaps('folder_3', '..\\pixelmaps\\', 'bg_tile.png') 145 test_utils.click_resource_group('PIXELMAP_GROUP') 146 147 test_utils.click_resource_group('PIXELMAP_GROUP') 148 test_utils.remove_pixelmap_folder('folder_3') 149 test_utils.click_resource_group('PIXELMAP_GROUP') 150 151 #Add strings 152 test_utils.edit_string() 153 test_utils.sort_string(test_constants.STRING_SORT_TYPE_ID) 154 test_utils.add_string() 155 test_utils.edit_string_id('STRING_0') 156 test_utils.edit_top_string('string 0') 157 test_utils.add_string() 158 test_utils.edit_string_id('STRING_8') 159 test_utils.edit_top_string('string 8') 160 test_utils.add_string() 161 test_utils.edit_string_id('STRING_2') 162 test_utils.edit_top_string('string 2') 163 test_utils.add_string() 164 test_utils.edit_string_id('STRING_3') 165 test_utils.edit_top_string('string 3') 166 test_utils.save_string_edit() 167 168def run_add_widgets(): 169 test_utils.select_project_tree_node('display_1') 170 171 #create default folder to add widget 172 test_utils.insert_folder() 173 test_utils.select_project_tree_node('default_folder') 174 175 test_utils.add_widget('GX_TYPE_WINDOW') 176 test_utils.edit_widget_props("ID_WIDGET_NAME", "simple_window") 177 test_utils.edit_widget_props("ID_NORMAL_COLOR", "RED") 178 test_utils.edit_widget_props("ID_XPOS", 160) 179 test_utils.edit_widget_props("ID_YPOS", 120) 180 test_utils.edit_widget_props("ID_WIDTH", 320) 181 test_utils.edit_widget_props("ID_HEIGHT", 240) 182 183 test_utils.select_project_tree_node('simple_window') 184 test_utils.add_widget('GX_TYPE_ICON') 185 test_utils.edit_widget_props("ID_PIXELMAP_0", 'SAVE_ICON') 186 test_utils.edit_widget_props("ID_XPOS", 207) 187 test_utils.edit_widget_props("ID_YPOS", 148) 188 test_utils.edit_widget_props("ID_WIDTH", 18) 189 test_utils.edit_widget_props("ID_HEIGHT", 18) 190 191 test_utils.select_project_tree_node('simple_window') 192 test_utils.add_widget('GX_TYPE_PIXELMAP_PROMPT') 193 test_utils.edit_widget_props("ID_PIXELMAP_0", 'ORANGE_BUTTON') 194 test_utils.edit_widget_props("ID_FONT_SELECT_0", 'SMALL_FONT') 195 test_utils.edit_widget_props("ID_NORMAL_COLOR", "GREEN") 196 test_utils.edit_widget_props("ID_XPOS", 252) 197 test_utils.edit_widget_props("ID_YPOS", 212) 198 test_utils.edit_widget_props("ID_WIDTH", 141) 199 test_utils.edit_widget_props("ID_HEIGHT", 70) 200 201 test_utils.select_project_tree_node('simple_window') 202 test_utils.add_widget('GX_TYPE_PROMPT') 203 test_utils.edit_widget_props("ID_STRING_ID", "STRING_8") 204 test_utils.edit_widget_props("ID_XPOS", 292) 205 test_utils.edit_widget_props("ID_YPOS", 147) 206 207 test_utils.select_project_tree_node('simple_window') 208 test_utils.add_widget('GX_TYPE_PROMPT') 209 test_utils.edit_widget_props("ID_STRING_ID", "STRING_2") 210 test_utils.edit_widget_props("ID_XPOS", 186) 211 test_utils.edit_widget_props("ID_YPOS", 310) 212 213def edit_resource_in_theme_2(): 214 #edit color 215 test_utils.click_resource_group('COLOR_GROUP') 216 test_utils.delete_color('GREEN') 217 test_utils.edit_color('RED') 218 test_utils.set_color_name('NEW_RED') 219 test_utils.set_color_red(47) 220 test_utils.set_color_green(136) 221 test_utils.set_color_blue(200) 222 test_utils.save_color_edit() 223 test_utils.click_resource_group('COLOR_GROUP') 224 225 #edit font 226 test_utils.click_resource_group('FONT_GROUP') 227 test_utils.delete_font('BIG_FONT') 228 test_utils.edit_font('SMALL_FONT') 229 test_utils.set_font_name('NEW_SMALL_FONT') 230 test_utils.set_font_height(30) 231 test_utils.save_font_edit() 232 test_utils.click_resource_group('FONT_GROUP') 233 234 #edit pixelmap 235 test_utils.click_resource_group('PIXELMAP_GROUP') 236 test_utils.click_pixelmap_folder('DEFAULT_PIXELMAP_FOLDER', 'System') 237 test_utils.disable_pixelmap('CHECKBOX_OFF') 238 test_utils.disable_pixelmap('CHECKBOX_ON') 239 test_utils.click_pixelmap_folder('DEFAULT_PIXELMAP_FOLDER', 'System') 240 241 test_utils.click_pixelmap_folder('CUSTOM_PIXELMAP_FOLDER', 'Custom') 242 test_utils.delete_pixelmap('SAVE_ICON') 243 test_utils.click_pixelmap_folder('CUSTOM_PIXELMAP_FOLDER', 'Custom') 244 245 test_utils.click_pixelmap_folder('CUSTOM_PIXELMAP_FOLDER', 'folder_2') 246 test_utils.edit_pixelmap('ORANGE_BUTTON') 247 test_utils.set_image_path('..\\..\\pixelmaps\\black_pause.png') 248 test_utils.set_image_id_name('NEW_ORANGE_BUTTON') 249 test_utils.save_pixelmap_edit(); 250 test_utils.click_pixelmap_folder('CUSTOM_PIXELMAP_FOLDER', 'folder_2') 251 test_utils.click_resource_group('PIXELMAP_GROUP') 252 253def edit_resource_in_theme_0(): 254 #edit color 255 test_utils.click_resource_group('COLOR_GROUP') 256 test_utils.edit_color('NEW_RED') 257 test_utils.set_color_red(192) 258 test_utils.set_color_green(80) 259 test_utils.set_color_blue(53) 260 test_utils.save_color_edit() 261 test_utils.click_resource_group('COLOR_GROUP') 262 263 #edit font 264 test_utils.click_resource_group('FONT_GROUP') 265 test_utils.edit_font('NEW_SMALL_FONT') 266 test_utils.set_font_height(20) 267 test_utils.save_font_edit() 268 test_utils.click_resource_group('FONT_GROUP') 269 270 #edit pixelmap 271 test_utils.click_resource_group('PIXELMAP_GROUP') 272 test_utils.click_pixelmap_folder('CUSTOM_PIXELMAP_FOLDER', 'folder_2') 273 test_utils.edit_pixelmap('NEW_ORANGE_BUTTON') 274 test_utils.set_image_path('..\\..\\pixelmaps\\red_apple.png') 275 test_utils.click_pixelmap_folder('CUSTOM_PIXELMAP_FOLDER', 'folder_2') 276 test_utils.save_pixelmap_edit() 277 test_utils.click_resource_group('PIXELMAP_GROUP') 278 279def add_delete_pixelmap_folder(): 280 #set 'NEW_ORANGE_BUTTON' to 8bit palette format 281 test_utils.click_resource_group('PIXELMAP_GROUP') 282 test_utils.click_pixelmap_folder('CUSTOM_PIXELMAP_FOLDER', 'folder_2') 283 test_utils.edit_pixelmap('NEW_ORANGE_BUTTON') 284 test_utils.set_output_format('GX_COLOR_FORMAT_8BIT_PALETTE') 285 test_utils.set_palette_type('PALETTE_TYPE_SHARED') 286 test_utils.save_pixelmap_edit() 287 test_utils.click_pixelmap_folder('CUSTOM_PIXELMAP_FOLDER', 'folder_2') 288 test_utils.click_resource_group('PIXELMAP_GROUP') 289 290 #copy 'prompt' 291 test_utils.select_project_tree_node('prompt') 292 test_utils.toolbar_copy() 293 294 #delete 'Custom' pixelmap folder 295 test_utils.click_resource_group('PIXELMAP_GROUP') 296 test_utils.remove_pixelmap_folder('folder_2') 297 test_utils.compare_result() 298 299 set_active_theme(theme_names[1]) 300 test_utils.compare_result() 301 302 set_active_theme(theme_names[0]) 303 test_utils.compare_result() 304 305 #paste 'prompt' to 'simple_window' 306 test_utils.select_project_tree_node('simple_window') 307 test_utils.toolbar_paste() 308 309 #reset active theme 310 set_active_theme(theme_names[1]) 311 test_utils.compare_result() 312 313 #reset active theme 314 set_active_theme(theme_names[2]) 315 test_utils.compare_result() 316 317 #add a new pixelmap folder 'test_folder' 318 test_utils.add_pixelmap_folder() 319 test_utils.set_folder_name('test_folder') 320 test_utils.save_folder_name_edit() 321 322 #reset active theme 323 set_active_theme(theme_names[1]) 324 325 #add a pixlemap to 'test_folder' 326 test_utils.click_resource_group('PIXELMAP_GROUP') 327 test_utils.click_pixelmap_folder('CUSTOM_PIXELMAP_FOLDER', 'test_folder') 328 test_utils.add_pixelmaps('test_folder', '..\\pixelmaps\\', 'save_icon.png') 329 test_utils.click_pixelmap_folder('CUSTOM_PIXELMAP_FOLDER', 'test_folder') 330 test_utils.click_resource_group('PIXELMAP_GROUP') 331 332 #set new pixelmap to 'simple_window' 333 test_utils.select_project_tree_node('simple_window') 334 test_utils.edit_widget_props("ID_PIXELMAP_0", test_constants.PIXELMAP_SAVE_ICON) 335 test_utils.compare_result() 336 337 338def run_multi_themes_tests(generate, screenshot): 339 340 test_utils.output_test_header(get_test_header()) 341 test_utils.setup(generate, screenshot, 'test_multi_themes_golden_file') 342 343 run_new_project_create("multi_themes") 344 run_configure_themes() 345 set_active_theme(theme_names[1]) 346 test_utils.compare_result() 347 348 run_add_resources() 349 run_add_widgets() 350 test_utils.compare_result() 351 352 set_active_theme(theme_names[0]) 353 test_utils.compare_result() 354 355 set_active_theme(theme_names[2]) 356 test_utils.compare_result() 357 358 edit_resource_in_theme_2() 359 test_utils.compare_result() 360 361 set_active_theme(theme_names[1]) 362 test_utils.compare_result() 363 364 set_active_theme(theme_names[0]) 365 test_utils.compare_result() 366 367 edit_resource_in_theme_0() 368 test_utils.compare_result() 369 370 set_active_theme(theme_names[1]) 371 test_utils.compare_result() 372 373 set_active_theme(theme_names[2]) 374 test_utils.compare_result() 375 376 #test if configure language will broke string table 377 test_utils.configure_languages() 378 test_utils.save_language_configure() 379 test_utils.edit_string() 380 test_utils.cancel_string_edit() 381 382 test_utils.generate_all() 383 test_utils.check_resource('display_1', 'theme0', 0) 384 test_utils.check_resource('Languages', 'Latin', 0) 385 test_utils.click_generate_button() 386 387 test_utils.configure_project() 388 test_utils.configure_big_endian(1) 389 test_utils.save_project_configure() 390 391 add_delete_pixelmap_folder() 392 393 test_utils.generate_resources() 394 test_utils.set_custom_resource_name("multi_themes_resources_big_endian") 395 test_utils.click_generate_button() 396 397 test_utils.cmp_output_files(multi_themes_output_files) 398 test_utils.close_project 399 400 test_utils.write_end('Multi-Themes Tests') 401