1# -*- coding: utf-8 -*-
2import os
3import sys
4import time
5import test_utils
6import test_constants
7
8
9display_1_name = 'display_1'
10display_2_name = 'display_2'
11folder_name = 'default_folder'
12
13
14def get_test_header():
15    notes =  "*                 Undo Test                           *\n"
16    notes += "*                                                     *\n"
17    notes += "* Undo widget delete operation from project           *\n"
18    return notes
19
20def run_new_project_create(project_name):
21
22    # create a new project
23    test_utils.toolbar_create()
24    test_utils.set_new_project_path(test_utils.DEFAULT_OUTPUT_FILE_PATH)
25    test_utils.set_new_project_name(project_name)
26    test_utils.save_new_project_create()
27
28    # configure project
29    test_utils.configure_project()
30    test_utils.configure_display_num(2)
31    test_utils.select_display_index(1)
32    test_utils.configure_x_res(640)
33    test_utils.configure_y_res(480)
34    test_utils.configure_display_name(display_1_name)
35    test_utils.select_display_index(2)
36    test_utils.configure_x_res(640)
37    test_utils.configure_y_res(480)
38    test_utils.configure_display_name(display_2_name)
39    test_utils.save_project_configure()
40
41    # close message dialog when create new and delete default_folder
42    test_utils.close_message_dialog()
43
44
45
46def undo_delete_widget():
47    #insert window to delete
48    window_name = 'target_window'
49    test_utils.select_project_tree_node(display_2_name)
50    test_utils.insert_folder()
51    test_utils.add_widget('GX_TYPE_WINDOW')
52    test_utils.edit_widget_props("ID_WIDGET_NAME", window_name)
53    test_utils.edit_widget_props("ID_XPOS", 160)
54    test_utils.edit_widget_props("ID_YPOS", 120)
55    test_utils.edit_widget_props("ID_WIDTH", 320)
56    test_utils.edit_widget_props("ID_HEIGHT", 240)
57    test_utils.delete_widget()
58    test_utils.undo()
59    test_utils.compare_result()
60
61def run_undo_tests(generate, screenshot):
62    test_utils.output_test_header(get_test_header())
63    test_utils.setup(generate, screenshot, 'test_undo_golden_file')
64
65    print('create new project')
66    run_new_project_create("test_undo")
67
68
69    #test bug that while undo widget delete, incorrect parent is pasted to.
70    undo_delete_widget();
71
72
73    test_utils.write_end('Undo Tests')