1import test_utils
2
3def get_test_header():
4    notes =  "*     Studio Copy/Paste Multiple Widgets Test         *\n"
5    notes += "*                                                     *\n"
6    notes += "* Copy and Paste multiple widgets                     *\n"
7    return notes
8
9
10def run_new_project_create(name, format):
11    # create a new project
12    test_utils.toolbar_create()
13    test_utils.set_new_project_path(test_utils.DEFAULT_OUTPUT_FILE_PATH)
14    test_utils.set_new_project_name(name)
15    test_utils.save_new_project_create()
16
17    # configure project
18    test_utils.configure_project()
19    test_utils.configure_x_res(640)
20    test_utils.configure_y_res(480)
21    test_utils.configure_display_name('display_1')
22    test_utils.configure_display_color_format(format)
23    test_utils.configure_source_path('output_files')
24    test_utils.configure_header_path('output_files')
25    test_utils.configure_resource_path('output_files')
26    test_utils.save_project_configure()
27
28    #create default folder for new project
29    test_utils.close_message_dialog()
30
31    test_utils.toolbar_save()
32
33def run_copy_paste_multi_tests(generate, screenshot):
34    test_utils.output_test_header(get_test_header())
35    test_utils.setup(generate, screenshot, 'test_copy_paste_multi_golden_file')
36
37    #create a 16bpp project
38    test_project = 'test_copy_paste_multi'
39    print('create a 16bpp project: %s' %(test_project))
40    run_new_project_create(test_project, 'GX_COLOR_FORMAT_565RGB')
41
42    #insert a window
43    test_utils.select_project_tree_node("window")
44    test_utils.edit_widget_props("ID_XPOS", 0)
45    test_utils.edit_widget_props("ID_YPOS", 0)
46    test_utils.edit_widget_props("ID_WIDTH", 640)
47    test_utils.edit_widget_props("ID_HEIGHT", 480)
48
49    #insert a prompt to window
50    test_utils.select_project_tree_node("window")
51    test_utils.add_widget("GX_TYPE_PROMPT")
52
53    #insert a button to window
54    test_utils.select_project_tree_node("window")
55    test_utils.add_widget("GX_TYPE_BUTTON")
56    test_utils.edit_widget_props("ID_XPOS", 10)
57    test_utils.edit_widget_props("ID_YPOS", 10)
58    test_utils.edit_widget_props("ID_WIDTH", 100)
59    test_utils.edit_widget_props("ID_HEIGHT", 50)
60
61    #select button and prompt
62    test_utils.select_multi_widgets("prompt")
63
64    #copy selected widgets
65    test_utils.toolbar_copy()
66
67    #paste selected widgets to window
68    test_utils.select_project_tree_node("window")
69    test_utils.toolbar_paste(0)#0:do not deselect after paste
70
71    #delete selected widgets(not allowed)
72    test_utils.delete_widget(0)#0:do not compare after delete
73
74    #move selected widget
75    test_utils.move_selected(50)
76
77    test_utils.undo()
78    test_utils.undo()
79
80    test_utils.toolbar_save()
81
82    test_utils.write_end('Copy/Paste Multi Tests')
83