forked from os-autoinst/os-autoinst-distri-opensuse
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Create equivalent yast2_firewall test module based on libyui-rest-api
- Loading branch information
Showing
19 changed files
with
751 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# SUSE's openQA tests | ||
# | ||
# Copyright 2022 SUSE LLC | ||
# SPDX-License-Identifier: FSFAP | ||
|
||
# Summary: Handles Change Zone Page. | ||
# Maintainer: QE YaST <qa-sle-yast@suse.de> | ||
|
||
package YaST::Firewall::ChangeZonePage; | ||
use strict; | ||
use warnings; | ||
|
||
sub new { | ||
my ($class, $args) = @_; | ||
my $self = bless { | ||
app => $args->{app} | ||
}, $class; | ||
return $self->init(); | ||
} | ||
|
||
sub init { | ||
my $self = shift; | ||
$self->{cmb_zone_options} = $self->{app}->combobox({id => "\"Y2Firewall::Widgets::ZoneOptions\""}); | ||
$self->{btn_ok} = $self->{app}->button({id => "ok"}); | ||
return $self; | ||
} | ||
|
||
sub is_shown { | ||
my ($self) = @_; | ||
return $self->{cmb_zone_options}->exist(); | ||
} | ||
|
||
sub set_interface_zone { | ||
my ($self, $zone) = @_; | ||
$self->{cmb_zone_options}->select($zone); | ||
$self->{btn_ok}->click(); | ||
} | ||
1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,156 @@ | ||
# SUSE's openQA tests | ||
# | ||
# Copyright 2022 SUSE LLC | ||
# SPDX-License-Identifier: FSFAP | ||
|
||
# Summary: The class introduces actions Firewall Settings Page. | ||
# Maintainer: QE YaST <qa-sle-yast@suse.de> | ||
|
||
package YaST::Firewall::FirewallController; | ||
use strict; | ||
use warnings; | ||
use testapi; | ||
use YaST::Firewall::MainPage; | ||
use YaST::Firewall::StartUpPage; | ||
use YaST::Firewall::InterfacesPage; | ||
use YaST::Firewall::ZonesPage; | ||
use YaST::Firewall::ZonePage; | ||
use YaST::Firewall::ServicesPage; | ||
use YaST::Firewall::PortsPage; | ||
|
||
use YuiRestClient; | ||
|
||
sub new { | ||
my ($class, $args) = @_; | ||
my $self = bless {}, $class; | ||
return $self->init($args); | ||
} | ||
|
||
sub init { | ||
my ($self, $args) = @_; | ||
$self->{MainPage} = YaST::Firewall::MainPage->new({app => YuiRestClient::get_app()}); | ||
$self->{StartUpPage} = YaST::Firewall::StartUpPage->new({app => YuiRestClient::get_app()}); | ||
$self->{InterfacesPage} = YaST::Firewall::InterfacesPage->new({app => YuiRestClient::get_app()}); | ||
$self->{ZonesPage} = YaST::Firewall::ZonesPage->new({app => YuiRestClient::get_app()}); | ||
$self->{ZonePage} = YaST::Firewall::ZonePage->new({app => YuiRestClient::get_app()}); | ||
$self->{ServicesPage} = YaST::Firewall::ServicesPage->new({app => YuiRestClient::get_app()}); | ||
$self->{PortsPage} = YaST::Firewall::PortsPage->new({app => YuiRestClient::get_app()}); | ||
return $self; | ||
} | ||
|
||
sub get_main_page { | ||
my ($self) = @_; | ||
die 'Main Firewall Page is not displayed' unless $self->{MainPage}->is_shown(); | ||
return $self->{MainPage}; | ||
} | ||
|
||
sub get_start_up_page { | ||
my ($self) = @_; | ||
die 'StartUp Pane is not displayed' unless $self->{StartUpPage}->is_shown(); | ||
return $self->{StartUpPage}; | ||
} | ||
|
||
sub get_interfaces_page { | ||
my ($self) = @_; | ||
die 'Interfaces Pane is not displayed' unless $self->{InterfacesPage}->is_shown(); | ||
return $self->{InterfacesPage}; | ||
} | ||
|
||
sub get_zones_page { | ||
my ($self) = @_; | ||
die 'Zones Pane is not displayed' unless $self->{ZonesPage}->is_shown(); | ||
return $self->{ZonesPage}; | ||
} | ||
|
||
sub get_zone_page { | ||
my ($self) = @_; | ||
die 'Zone Pane is not displayed' unless $self->{ZonePage}->is_shown(); | ||
return $self->{ZonePage}; | ||
} | ||
|
||
sub get_services_page { | ||
my ($self) = @_; | ||
die 'Services Pane is not displayed' unless $self->{ServicesPage}->is_shown(); | ||
return $self->{ServicesPage}; | ||
} | ||
|
||
sub get_ports_page { | ||
my ($self) = @_; | ||
die 'Ports Pane is not displayed' unless $self->{PortsPage}->is_shown(); | ||
return $self->{PortsPage}; | ||
} | ||
|
||
sub select_start_up_page { | ||
my ($self, $zone) = @_; | ||
$self->get_main_page()->select_start_up_page(); | ||
} | ||
|
||
sub select_interfaces_page { | ||
my ($self, $zone) = @_; | ||
$self->get_main_page()->select_interfaces_page(); | ||
} | ||
|
||
sub select_zones_page { | ||
my ($self, $zone) = @_; | ||
$self->get_main_page()->select_zones_page(); | ||
} | ||
|
||
sub select_zone_page { | ||
my ($self, $zone) = @_; | ||
$self->get_main_page()->select_zone_page($zone); | ||
} | ||
|
||
sub start_firewall { | ||
my ($self) = @_; | ||
$self->get_start_up_page()->start_firewall(); | ||
} | ||
|
||
sub stop_firewall { | ||
my ($self) = @_; | ||
$self->get_start_up_page()->stop_firewall(); | ||
} | ||
|
||
sub accept_change { | ||
my ($self) = @_; | ||
$self->get_main_page()->press_accept(); | ||
} | ||
|
||
sub set_default_zone { | ||
my ($self, $zone) = @_; | ||
$self->get_zones_page()->select_zone($zone); | ||
save_screenshot; | ||
$self->get_zones_page()->set_default_zone(); | ||
} | ||
|
||
sub set_interface_zone { | ||
my ($self, $device, $zone) = @_; | ||
$self->get_interfaces_page()->set_interface_zone($device, $zone); | ||
} | ||
|
||
sub switch_ports_tab { | ||
my ($self) = @_; | ||
$self->get_zone_page()->switch_ports_tab(); | ||
} | ||
|
||
sub switch_services_tab { | ||
my ($self) = @_; | ||
$self->get_zone_page()->switch_services_tab(); | ||
} | ||
|
||
sub add_service { | ||
my ($self, $zone, $service) = @_; | ||
$self->switch_services_tab(); | ||
save_screenshot; | ||
$self->get_services_page()->select_service($zone, $service); | ||
save_screenshot; | ||
$self->get_services_page()->add_service(); | ||
} | ||
|
||
sub add_tcp_port { | ||
my ($self, $port) = @_; | ||
$self->switch_ports_tab(); | ||
save_screenshot; | ||
$self->get_ports_page()->set_tcp_port($port); | ||
} | ||
|
||
1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
# SUSE's openQA tests | ||
# | ||
# Copyright 2022 SUSE LLC | ||
# SPDX-License-Identifier: FSFAP | ||
|
||
# Summary: Handles Firewall Interfaces Page. | ||
# Maintainer: QE YaST <qa-sle-yast@suse.de> | ||
|
||
package YaST::Firewall::InterfacesPage; | ||
use strict; | ||
use warnings; | ||
use YaST::Firewall::ChangeZonePage; | ||
|
||
sub new { | ||
my ($class, $args) = @_; | ||
my $self = bless { | ||
app => $args->{app} | ||
}, $class; | ||
return $self->init(); | ||
} | ||
|
||
sub init { | ||
my $self = shift; | ||
$self->{tbl_interfaces} = $self->{app}->table({id => "\"interfaces_table\""}); | ||
$self->{btn_change_zone} = $self->{app}->button({id => "\"Y2Firewall::Widgets::ChangeZoneButton\""}); | ||
$self->{cmb_zone_options} = $self->{app}->combobox({id => "\"Y2Firewall::Widgets::ZoneOptions\""}); | ||
$self->{ChangeZonePage} = YaST::Firewall::ChangeZonePage->new({app => YuiRestClient::get_app()}); | ||
return $self; | ||
} | ||
|
||
sub is_shown { | ||
my ($self) = @_; | ||
return $self->{tbl_interfaces}->exist(); | ||
} | ||
|
||
sub get_items { | ||
my ($self) = @_; | ||
return $self->{tbl_interfaces}->items(); | ||
} | ||
|
||
sub set_interface_zone { | ||
my ($self, $device, $zone) = @_; | ||
$self->{tbl_interfaces}->select(value => $device); | ||
$self->{btn_change_zone}->click(); | ||
$self->{ChangeZonePage}->is_shown(); | ||
$self->{ChangeZonePage}->set_interface_zone($zone); | ||
} | ||
|
||
1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# SUSE's openQA tests | ||
# | ||
# Copyright 2022 SUSE LLC | ||
# SPDX-License-Identifier: FSFAP | ||
|
||
# Summary: Handles Firewall Main Page(Include left view tree menu and bottom button). | ||
# Maintainer: QE YaST <qa-sle-yast@suse.de> | ||
|
||
package YaST::Firewall::MainPage; | ||
use strict; | ||
use warnings; | ||
|
||
sub new { | ||
my ($class, $args) = @_; | ||
my $self = bless { | ||
app => $args->{app} | ||
}, $class; | ||
return $self->init(); | ||
} | ||
|
||
sub init { | ||
my $self = shift; | ||
$self->{tre_overview} = $self->{app}->tree({id => "\"Y2Firewall::Widgets::OverviewTree\""}); | ||
$self->{btn_accept} = $self->{app}->button({id => 'next'}); | ||
return $self; | ||
} | ||
|
||
sub is_shown { | ||
my ($self) = @_; | ||
return $self->{tre_overview}->exist(); | ||
} | ||
|
||
sub select_start_up_page { | ||
my ($self) = @_; | ||
$self->{tre_overview}->select("Start-Up"); | ||
} | ||
|
||
sub select_interfaces_page { | ||
my ($self) = @_; | ||
$self->{tre_overview}->select("Interfaces"); | ||
} | ||
|
||
sub select_zones_page { | ||
my ($self) = @_; | ||
$self->{tre_overview}->select("Zones"); | ||
} | ||
|
||
sub press_accept { | ||
my ($self) = @_; | ||
$self->{btn_accept}->click(); | ||
} | ||
|
||
sub select_zone_page { | ||
my ($self, $zone) = @_; | ||
$self->{tre_overview}->select("Zones|$zone"); | ||
} | ||
|
||
1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
# SUSE's openQA tests | ||
# | ||
# Copyright 2022 SUSE LLC | ||
# SPDX-License-Identifier: FSFAP | ||
|
||
# Summary: Handles Firewall Ports Page. | ||
# Maintainer: QE YaST <qa-sle-yast@suse.de> | ||
|
||
package YaST::Firewall::PortsPage; | ||
use strict; | ||
use warnings; | ||
|
||
sub new { | ||
my ($class, $args) = @_; | ||
my $self = bless { | ||
app => $args->{app} | ||
}, $class; | ||
return $self->init(); | ||
} | ||
|
||
sub init { | ||
my $self = shift; | ||
$self->{txb_tcp} = $self->{app}->textbox({id => "tcp"}); | ||
return $self; | ||
} | ||
|
||
sub is_shown { | ||
my ($self) = @_; | ||
return $self->{txb_tcp}->exist(); | ||
} | ||
|
||
sub set_tcp_port { | ||
my ($self, $tcp_port) = @_; | ||
$self->{txb_tcp}->set($tcp_port); | ||
} | ||
|
||
1; |
Oops, something went wrong.