1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2025-02-02 05:33:09 +00:00
os-autoinst-distri-fedora/tests/apptests/gedit.pm
2020-11-16 18:05:11 +01:00

328 lines
7.4 KiB
Perl

use base "installedtest";
use strict;
use testapi;
use utils;
use applications;
# This test tests the basic functionality of Gedit.
# ================= BASIC METHODS ===================
sub start {
send_key "super";
type_very_safely "gedit";
send_key "ret";
}
sub stop {
send_key "alt-f4";
}
sub open_menu {
assert_and_click "gnome-burger-menu";
wait_still_screen 2;
}
sub open_submenu_view {
assert_and_click "gedit_submenu_view";
wait_still_screen 2;
}
sub open_submenu_tools {
assert_and_click "gedit_submenu_tools";
wait_still_screen 2;
}
# ================= SPECIFIC METHODS ================
sub about {
# About screen can be displayed.
open_menu();
assert_and_click "gedit_about";
assert_screen "gedit_about_shown";
send_key "esc";
# Floating windows do not return focus to the text field, tab does in
# case something like that happens.
send_key "tab";
}
sub enter_text {
# Writes text into a window.
my $text = "Hope is the thing with feathers - \nThat perches in the soul -\nAnd sings the tune without the words -\nAnd never stops - at all -\n\nAnd sweetest - in the Gale - is heard -\nAnd sore must be the storm -\nThat could abash the little Bird\nThat kept so many warm -\n\nI've heard it in the chillest land -\nAnd on the strangest Sea -\nYet - never - in Extremity,\nIt asked a crumb - of me.\n\n";
type_safely $text;
assert_screen "gedit_text_added";
}
sub enter_code {
# Write some python code to test syntax highlighting.
my $text = "#!/usr/bin/python\n\nfor num in range(100):\n\tprint('This is line number:')\n\tprint(num)\n";
type_safely $text;
assert_screen "gedit_code_added";
}
sub save_file {
# Application can save file
assert_and_click "gnome_save";
type_safely "poem.txt";
send_key "ret";
assert_screen "gedit_text_saved";
}
sub delete_line {
# Some text can be deleted.
assert_and_click "gedit_line_word";
send_key "home";
send_key "shift-end";
send_key "delete";
send_key "ctrl-end";
assert_screen "gedit_line_deleted";
}
sub history {
# History can be used.
send_key "ctrl-z";
send_key "ctrl-end";
assert_screen "gedit_text_added";
}
sub display_stats {
# Statistics can be displayed.
open_menu();
open_submenu_tools();
assert_and_click "gedit_tools_stats";
assert_screen "gedit_stats_shown";
send_key "esc";
# Floating windows do not return focus to the text field, tab does.
send_key "tab";
}
sub open_file {
# Opens file from the list of saved files. This will not test to
# open a file using the standard Gnome dialogue.
assert_and_click "gedit_open";
assert_and_click "gedit_choose_file";
assert_screen "gedit_text_added";
}
sub find_text {
# Searches the file to find a word.
send_key "ctrl-f";
type_safely "sweetest";
send_key "ret";
# The found item is blue at first and after any action it changes to yellow. Let's move the cursor to
# change it into yellow for assertion.
send_key "left";
assert_screen "gedit_found_text";
}
sub find_and_replace {
# Replaces one word for another
send_key "ctrl-h";
type_safely "Gale";
assert_and_click "gedit_replace_nothing";
type_safely "Wiend"; # We produce a typo to check the spellchecker
assert_and_click "gedit_find";
assert_and_click "gedit_replace";
# Move out the floating window and put cursor at the end.
assert_and_click "gedit_switchoff";
assert_screen "gedit_text_replaced";
}
sub clear_highlight {
# This tests that a highlight can be removed from a search result.
open_menu();
assert_and_click "gedit_clear_highlight";
# Move cursor out of text.
send_key "ctrl-end";
assert_screen "gedit_text_added";
}
sub line_numbers {
# Switches on line numbering.
assert_and_click "gedit_line_options";
assert_and_click "gedit_display_linenumbers";
send_key "esc";
assert_screen "gedit_lines_numbered";
}
sub goto_line {
# Uses the menu to go to a specific line.
open_menu();
assert_and_click "gedit_goto_line";
type_safely "8\n";
assert_screen "gedit_line_reached";
}
sub highlight_line {
# Highlights the current line.
assert_and_click "gedit_line_options";
assert_and_click "gedit_highlight_current";
send_key "esc";
assert_screen "gedit_line_highlighted";
}
sub display_margin {
# Displays the right margine to monitor the file width.
assert_and_click "gedit_line_options";
assert_and_click "gedit_display_margin";
send_key "esc";
assert_screen "gedit_margin_displayed"
}
sub new_tab {
# Uses the new tab button to open a new tab
assert_and_click "gedit_new_tab";
assert_screen "gedit_tab_opened";
send_key "ctrl-w";
}
sub new_window {
open_menu();
assert_and_click "gedit_new_window";
assert_screen "gedit_new_opened";
}
sub side_panel {
open_menu();
open_submenu_view();
assert_and_click "gedit_side_panel";
send_key "esc";
assert_screen "gedit_sidepanel_on";
}
sub bottom_panel {
open_menu();
open_submenu_view();
assert_and_click "gedit_botton_panel";
send_key "esc";
assert_screen "gedit_bottompanel_on";
}
sub spellcheck {
open_menu();
open_submenu_tools();
assert_and_click "gedit_check_spelling";
assert_and_click "gedit_spelling_suggestion";
assert_and_click "gedit_spelling_change";
send_key "esc";
assert_and_click "gedit_spelling_changed";
}
sub highlight_misspelt_words {
open_menu();
open_submenu_tools();
assert_and_click "gedit_highlight_misspelt";
send_key "esc";
assert_and_click "gedit_misspelt_highlighted";
}
sub code_highlighting {
assert_and_click "select_highlighting";
type_very_safely "python";
send_key "ret";
assert_screen "code_highlighted";
}
sub close_without_saving {
assert_and_click "gedit_close_without_saving";
}
# TBD:
# Tools - Check spelling
# Tools - Misspelled words
# Insert Date and Time
# ================= TEST ROUTINE ===================
sub run {
my $self = shift;
# Start the application
start();
# Test the About menu
about();
# Enter text
enter_text();
# Delete line
delete_line();
# Use history to undelete the line again
history();
# Save the text into a file
save_file();
# Use Statistics menu
display_stats();
# Find a piece of text
find_text();
# Clear the highlighted background
clear_highlight();
# Find and replace a word
find_and_replace;
# Highlight misspellt words using the menu
highlight_misspelt_words();
# Checkspelling of the text
spellcheck();
# View the sidepanel
side_panel();
# Switch off the application.
stop();
# Start anew and open the saved file.
start();
open_file();
# Switch on line numbering
line_numbers();
# Go to a certain line
goto_line();
# Highlight selected line
highlight_line();
# Switch on display margin
display_margin();
# Switch on bottom panel
bottom_panel();
# Create a new document tab
new_tab();
# Open a new window
new_window();
# Enter some python code
enter_code();
# Select highlighting
code_highlighting();
# Stop this new instance
stop();
# Switch off the application
stop();
}
sub test_flags {
return { fatal => 1 };
}
1;
# vim: set sw=4 et: