1
0
mirror of https://github.com/azure-rtos/guix.git synced 2025-02-04 07:13:17 +08:00
guix/test/guix_studio_test/test_view/test_widget_name.py

145 lines
5.9 KiB
Python

# -*- coding: utf-8 -*-
import os
import sys
import time
import test_utils
import test_constants
import filecmp
first_display_name = "main_display"
second_display_name = "secondary_display"
widget_name_output_files = [
"test_widget_name_main_display_resources.c",
"test_widget_name_main_display_resources.h",
"test_widget_name_secondary_display_resources.c",
"test_widget_name_secondary_display_resources.h",
"test_widget_name_specifications.c",
"test_widget_name_specifications.h"]
def get_test_header():
notes = "* Widget Name Test *\n"
notes += "* *\n"
notes += "* Edit duplicate top level and child widget name *\n"
notes += "* (allowed) *\n"
notes += "* Edit duplicate child widget name under different *\n"
notes += "* top level widget(allowed) *\n"
notes += "* Edit duplicate top level widget name(not allowed) *\n"
notes += "* Edit duplicate child widget name under same top *\n"
notes += "* level widget(not allowed) *\n"
notes += "* Undo delete widget *\n"
notes += "* Import existing screens *\n"
notes += "* Test if we can find base widget correctly when *\n"
notes += "* base name is duplicated with child widget name *\n"
notes += "* under other top level widgets *\n"
return notes
def run_new_project_create(project_name):
# create a new project
test_utils.toolbar_create()
test_utils.set_new_project_path(test_utils.DEFAULT_OUTPUT_FILE_PATH)
test_utils.set_new_project_name(project_name)
test_utils.save_new_project_create()
test_utils.close_message_dialog()
# configure project
test_utils.configure_project()
test_utils.configure_display_num(2)
test_utils.wait_for_key()
test_utils.select_display_index(1);
test_utils.configure_x_res(640)
test_utils.configure_y_res(480)
test_utils.configure_display_name(first_display_name)
test_utils.wait_for_key()
test_utils.select_display_index(2);
test_utils.configure_x_res(320)
test_utils.configure_y_res(240)
test_utils.configure_display_name(second_display_name)
test_utils.wait_for_key()
test_utils.save_project_configure()
def run_widget_name_tests(generate, screenshot):
test_utils.output_test_header(get_test_header())
test_utils.setup(generate, screenshot, 'test_widget_name_golden_file')
print('create test widget name project')
run_new_project_create("test_widget_name")
test_utils.select_project_tree_node('window')
test_utils.add_widget('GX_TYPE_WINDOW')
test_utils.edit_widget_props("ID_WIDGET_NAME", 'window')#make the name the same as its parent
test_utils.select_project_tree_node('window')
test_utils.add_widget('GX_TYPE_WINDOW')
test_utils.edit_widget_props_post('ID_WIDGET_NAME', 'window')#duplicate child widget name under the same top level widget, not allowed
test_utils.close_error_dialog()
test_utils.select_project_tree_node('window_1')
test_utils.add_widget('GX_TYPE_WINDOW')
test_utils.edit_widget_props_post('ID_WIDGET_NAME', 'window_1')#duplicate child widget name under the same top level widget, not allowed
test_utils.close_error_dialog()
test_utils.select_project_tree_node('window_1')
test_utils.delete_widget()
test_utils.undo()
test_utils.select_project_tree_node('default_folder')
test_utils.add_widget('GX_TYPE_WINDOW')
test_utils.edit_widget_props_post("ID_WIDGET_NAME", 'window')#duplicate top level widget name, not allowed
test_utils.close_error_dialog()#close message dialog, widge already existing
test_utils.select_project_tree_node('window_3')
test_utils.add_widget('GX_TYPE_WINDOW')
test_utils.edit_widget_props('ID_WIDGET_NAME', 'window_2')#duplicate child widget name under different top level widget, allowed
test_utils.toolbar_save()
test_utils.select_project_tree_node('default_folder')
#import existing screens
import_project_name = os.path.abspath(test_utils.DEFAULT_OUTPUT_FILE_PATH) + '\\test_widget_name.gxp'
test_utils.import_project(import_project_name)
test_utils.save_project_import_dialog()
test_utils.select_project_tree_node(first_display_name)
test_utils.insert_folder()#default_folder_1
test_utils.add_widget('GX_TYPE_WINDOW')
test_utils.add_widget('GX_TYPE_PROMPT')
test_utils.edit_widget_props('ID_WIDGET_NAME', 'base')
test_utils.select_project_tree_node('default_folder_1')
test_utils.add_widget('GX_TYPE_WINDOW')
test_utils.edit_widget_props('ID_WIDGET_NAME', 'base')
test_utils.edit_widget_props('ID_TEMPLATE', 1)
test_utils.select_project_tree_node('default_folder_1')
test_utils.add_widget('GX_TYPE_WINDOW')
test_utils.add_widget('GX_TYPE_PROMPT')
test_utils.edit_widget_props('ID_WIDGET_NAME', 'base')
test_utils.select_project_tree_node('default_folder_1')
test_utils.add_template('base')
test_utils.edit_widget_props_post('ID_WIDGET_NAME', 'window')#duplicate top level widget name
test_utils.close_error_dialog()
test_utils.compare_result()
# test rename widget on second display
test_utils.select_project_tree_node(second_display_name)
test_utils.wait_for_key('selected secondary display')
test_utils.insert_folder() #default_folder
test_utils.wait_for_key('inserted default folder')
test_utils.add_widget('GX_TYPE_WINDOW')
test_utils.add_widget('GX_TYPE_PROMPT')
test_utils.wait_for_key('Added window and prompt')
test_utils.edit_widget_props('ID_WIDGET_NAME', "secondary_prompt")
test_utils.wait_for_key('renamed the prompt')
test_utils.generate_all()
test_utils.click_generate_button()
test_utils.cmp_output_files(widget_name_output_files)
test_utils.write_end('Widget Name Tests')