1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2024-12-28 21:23:09 +00:00
os-autoinst-distri-fedora/tests/flatpak_flathub.pm
Adam Williamson 3b3e00f123 flatpak: proxy the connection to flathub
This is intended to reduce the amount of traffic we generate to
flathub, particularly so we can run this test on updates as well
as composes. We have to set a proxy and trust an SSL cert.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-05-06 15:12:15 -07:00

61 lines
2.3 KiB
Perl

use base "installedtest";
use strict;
use testapi;
use utils;
# This script tests that the Flathub repository can be added and that applications
# from that repository can be installed.
sub run {
my $self = shift;
$self->root_console(tty => 3);
# Trust the SSL certificate for the proxy we use to MITM flathub
# to reduce external traffic
# https://pagure.io/fedora-infrastructure/issue/11634
assert_script_run("curl -o /etc/pki/ca-trust/source/anchors/flathub-proxy.crt https://fedorapeople.org/groups/qa/openqa-data/flathub-proxy.crt");
assert_script_run("update-ca-trust");
# On Silverblue, Flathub is not set as a Flatpak remote by default, only when Third Party Repos
# are enabled. To make sure, we have it enabled, we will use the following command to
# add the Flathub repository.
assert_script_run("sudo http_proxy=http://flatpak-cache01.iad2.fedoraproject.org:3128 flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo");
# Check that the Flathub repository has been added into the repositories.
validate_script_output("flatpak remotes", sub { m/flathub/ });
# Now, we can search for an application that only exists in Flathub.
validate_script_output("http_proxy=http://flatpak-cache01.iad2.fedoraproject.org:3128 flatpak search focuswriter", sub { m/org.gottcode.FocusWriter/ });
# And we can install it
assert_script_run("http_proxy=http://flatpak-cache01.iad2.fedoraproject.org:3128 flatpak install -y org.gottcode.FocusWriter", timeout => 600);
# Check that now the application is listed in the installed flatpaks.
assert_script_run("flatpak list | grep org.gottcode.FocusWriter");
# Switch to desktop and try to run the application.
desktop_vt();
wait_still_screen(3);
menu_launch_type("focuswriter");
# Check that it started
assert_screen("apps_run_focuswriter");
# Stop the application
send_key("alt-f4");
# Switch to console again.
$self->root_console(tty => 3);
# Now, remove the package and test that it is not listed.
assert_script_run("flatpak remove -y org.gottcode.FocusWriter");
assert_script_run("! flatpak list | grep org.gottcode.FocusWriter");
}
sub test_flags {
return {fatal => 1};
}
1;
# vim: set sw=4 et: