From patchwork Mon Oct 30 22:25:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alassane Yattara X-Patchwork-Id: 33139 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2EFCEC4332F for ; Mon, 30 Oct 2023 22:25:36 +0000 (UTC) Received: from mail.savoirfairelinux.com (mail.savoirfairelinux.com [208.88.110.44]) by mx.groups.io with SMTP id smtpd.web11.173123.1698704732013530539 for ; Mon, 30 Oct 2023 15:25:33 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@savoirfairelinux.com header.s=DFC430D2-D198-11EC-948E-34200CB392D2 header.b=Z4XDFK3D; spf=pass (domain: savoirfairelinux.com, ip: 208.88.110.44, mailfrom: alassane.yattara@savoirfairelinux.com) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 946FA9C2A91 for ; Mon, 30 Oct 2023 18:25:30 -0400 (EDT) Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavis, port 10032) with ESMTP id cb-8XJquBi5G; Mon, 30 Oct 2023 18:25:30 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 0D0359C27A2; Mon, 30 Oct 2023 18:25:30 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.savoirfairelinux.com 0D0359C27A2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=savoirfairelinux.com; s=DFC430D2-D198-11EC-948E-34200CB392D2; t=1698704730; bh=dJpALff2FRALUs6m+BZZFjVAVIE4fVkTGptccUjZhD8=; h=From:To:Date:Message-Id:MIME-Version; b=Z4XDFK3DYOZseF7AFlx8V3zEdzlgEfbs2L5DQPMsv4oWUXL2BwbmcraAwNtMBO+CN J6FpeDG1BvOR0sVjCgrxsM1oFfSxwwwGOokqZIJ8CEz+WlIw97CBVQryZk1uw2t6wn vSIkdhWrzyg4xVfSq/wNmsTGu9zDwn3mgwGGr7RxyRVPhM7uUfEFO+3hpfwSufRhj8 pczb61bSU2sqQJp1eWOGcVmS0ok0hUV0jywfJ04zO1YWD9cwGC5cc6aa6cjq5fcgdB c9xdfBK4gPgR3gOCquIYZSb339cDQNrPXxFYuO6tUL22OL5GgqvYsBGSRLNVrd/GFh ofFUKDMJPEGuA== X-Virus-Scanned: amavis at mail.savoirfairelinux.com Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavis, port 10026) with ESMTP id J27FGdT6_Vzt; Mon, 30 Oct 2023 18:25:29 -0400 (EDT) Received: from localhost.localdomain (unknown [192.168.51.254]) by mail.savoirfairelinux.com (Postfix) with ESMTPSA id 294A89C091F; Mon, 30 Oct 2023 18:25:28 -0400 (EDT) From: Alassane Yattara To: toaster@lists.yoctoproject.org Cc: Alassane Yattara Subject: [PATCH 1/3] Toaster: Check info_sign is visible and clickable in landing page Date: Mon, 30 Oct 2023 23:25:11 +0100 Message-Id: <20231030222513.403014-1-alassane.yattara@savoirfairelinux.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 30 Oct 2023 22:25:36 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/toaster/message/5912 Check the information icon is visible and clickable Also if popup appearing when clicked and contain "Toaster version information" Signed-off-by: Alassane Yattara --- lib/toaster/tests/browser/test_landing_page.py | 17 +++++++++++++++++ lib/toaster/toastergui/templates/base.html | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/toaster/tests/browser/test_landing_page.py b/lib/toaster/tests/browser/test_landing_page.py index 8bb64b9f..2f092400 100644 --- a/lib/toaster/tests/browser/test_landing_page.py +++ b/lib/toaster/tests/browser/test_landing_page.py @@ -7,6 +7,7 @@ # Copyright (C) 2013-2016 Intel Corporation # +from time import sleep from django.urls import reverse from django.utils import timezone from tests.browser.selenium_helpers import SeleniumTestCase @@ -29,6 +30,22 @@ class TestLandingPage(SeleniumTestCase): self.project.is_default = True self.project.save() + def test_icon_info_visible_and_clickable(self): + """ Test that the information icon is visible and clickable """ + self.get(reverse('landing')) + info_sign = self.find('#toaster-version-info-sign') + + # check that the info sign is visible + self.assertTrue(info_sign.is_displayed()) + + # check that the info sign is clickable + # and info modal is appearing when clicking on the info sign + info_sign.click() # click on the info sign make attribute 'aria-describedby' visible + info_model_id = info_sign.get_attribute('aria-describedby') + info_modal = self.find(f'#{info_model_id}') + self.assertTrue(info_modal.is_displayed()) + self.assertTrue("Toaster version information" in info_modal.text) + def test_only_default_project(self): """ No projects except default diff --git a/lib/toaster/toastergui/templates/base.html b/lib/toaster/toastergui/templates/base.html index e8600f3e..041448d1 100644 --- a/lib/toaster/toastergui/templates/base.html +++ b/lib/toaster/toastergui/templates/base.html @@ -94,7 +94,7 @@ Toaster {% if DEBUG %} - + {% endif %} From patchwork Mon Oct 30 22:25:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alassane Yattara X-Patchwork-Id: 33141 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 490CCC4167D for ; Mon, 30 Oct 2023 22:25:36 +0000 (UTC) Received: from mail.savoirfairelinux.com (mail.savoirfairelinux.com [208.88.110.44]) by mx.groups.io with SMTP id smtpd.web11.173126.1698704733261293417 for ; Mon, 30 Oct 2023 15:25:33 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@savoirfairelinux.com header.s=DFC430D2-D198-11EC-948E-34200CB392D2 header.b=bgdxoAV8; spf=pass (domain: savoirfairelinux.com, ip: 208.88.110.44, mailfrom: alassane.yattara@savoirfairelinux.com) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id F1B859C3231 for ; Mon, 30 Oct 2023 18:25:31 -0400 (EDT) Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavis, port 10032) with ESMTP id fGK8hNPN-abo; Mon, 30 Oct 2023 18:25:31 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 416709C0C62; Mon, 30 Oct 2023 18:25:31 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.savoirfairelinux.com 416709C0C62 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=savoirfairelinux.com; s=DFC430D2-D198-11EC-948E-34200CB392D2; t=1698704731; bh=hoj5Z+H1lnrzriSY58HGeJeI91BUA3QSPERLn9+Zrs0=; h=From:To:Date:Message-Id:MIME-Version; b=bgdxoAV8H93Wq1E6HITYhfqRAgtTDl24lj0Z2t/I+M7vQMvec/O/vSkHXxMRnMbY0 HOH5DqOP33X8bnly6qMUlhgiPzZ6eRBTcvZ4jYqC6DYlSsN3VDNHy8S2H8paOTtZv5 3lGDbz8HP4bsAEqHS2/PB3CCE7mEpQzg64Ae/una5xB+b+gt6RTz7+UzSsY22eNP81 CTSz3B5BS5QTfuWEDB/k8JduQeYOCzf99Sl9xjmWJvILYCjWx8eIKsq+UGssYc/eol lLRt6Ex8qxbkHAvB2kxidnQWmdzF+YepWGIaLkpPx3Y8btePd9wt/ZvnNa8FIw4O7q YSn5xIyrB6djg== X-Virus-Scanned: amavis at mail.savoirfairelinux.com Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavis, port 10026) with ESMTP id NWh367WTCG7X; Mon, 30 Oct 2023 18:25:31 -0400 (EDT) Received: from localhost.localdomain (unknown [192.168.51.254]) by mail.savoirfairelinux.com (Postfix) with ESMTPSA id 5ED9D9C091F; Mon, 30 Oct 2023 18:25:30 -0400 (EDT) From: Alassane Yattara To: toaster@lists.yoctoproject.org Cc: Alassane Yattara Subject: [PATCH 2/3] Toaster: Test documentation link in landing header is displayed Date: Mon, 30 Oct 2023 23:25:12 +0100 Message-Id: <20231030222513.403014-2-alassane.yattara@savoirfairelinux.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231030222513.403014-1-alassane.yattara@savoirfairelinux.com> References: <20231030222513.403014-1-alassane.yattara@savoirfairelinux.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 30 Oct 2023 22:25:36 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/toaster/message/5913 - check that the documentation link is visible - check browser open new tab toaster manual when clicking on the documentation link Signed-off-by: Alassane Yattara Reviewed-by: Tim Orling --- lib/toaster/tests/browser/test_landing_page.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/toaster/tests/browser/test_landing_page.py b/lib/toaster/tests/browser/test_landing_page.py index 2f092400..e731af22 100644 --- a/lib/toaster/tests/browser/test_landing_page.py +++ b/lib/toaster/tests/browser/test_landing_page.py @@ -46,6 +46,21 @@ class TestLandingPage(SeleniumTestCase): self.assertTrue(info_modal.is_displayed()) self.assertTrue("Toaster version information" in info_modal.text) + def test_documentation_link_displayed(self): + """ Test that the documentation link is displayed """ + self.get(reverse('landing')) + documentation_link = self.find('#navbar-docs > a') + + # check that the documentation link is visible + self.assertTrue(documentation_link.is_displayed()) + + # check browser open new tab toaster manual when clicking on the documentation link + self.assertEqual(documentation_link.get_attribute('target') , '_blank') + self.assertEqual( + documentation_link.get_attribute('href'), + 'http://docs.yoctoproject.org/toaster-manual/index.html#toaster-user-manual') + self.assertTrue("Documentation" in documentation_link.text) + def test_only_default_project(self): """ No projects except default From patchwork Mon Oct 30 22:25:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alassane Yattara X-Patchwork-Id: 33140 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 40C2CC4167B for ; Mon, 30 Oct 2023 22:25:36 +0000 (UTC) Received: from mail.savoirfairelinux.com (mail.savoirfairelinux.com [208.88.110.44]) by mx.groups.io with SMTP id smtpd.web11.173127.1698704733856982910 for ; Mon, 30 Oct 2023 15:25:34 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@savoirfairelinux.com header.s=DFC430D2-D198-11EC-948E-34200CB392D2 header.b=pApE570y; spf=pass (domain: savoirfairelinux.com, ip: 208.88.110.44, mailfrom: alassane.yattara@savoirfairelinux.com) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 40F0A9C2A91 for ; Mon, 30 Oct 2023 18:25:33 -0400 (EDT) Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavis, port 10032) with ESMTP id k011dqIVSkkT; Mon, 30 Oct 2023 18:25:32 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 637C09C0C62; Mon, 30 Oct 2023 18:25:32 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.savoirfairelinux.com 637C09C0C62 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=savoirfairelinux.com; s=DFC430D2-D198-11EC-948E-34200CB392D2; t=1698704732; bh=FbEvP139iD6VXsM1TfT6Jdts563uG2RxJf7betlj6RE=; h=From:To:Date:Message-Id:MIME-Version; b=pApE570y/Af8HUpBOeuCH7qVMubVSkiE24sgTUhIihp07cGoyhuY+Iu5+w81LPDSf +FwGg49L8oo+r9nq991EVfUTP6a5z3QmpHiC9uelyRgQwTTcKVNtapWslvagTwKEpG DEJ5HaR+u+yX2wl1K+v4jVPuU8wvBmVBGEyNM38717gwWCnffy1m2p1imUKQhsF1MC UKvrqxB4XGUfV13cPXVJ8QIu10Q7W3p/Q2mOX5ZXElr5N2iJWXAFX7xNaLGEIyBkiI PsgdKdCS4pG2coCTqoB8/HxU2iFkSdujOCi9m+0r3V457TBNm95z+1U5qThKB4yqqa pCZ+pfdu9lbzA== X-Virus-Scanned: amavis at mail.savoirfairelinux.com Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavis, port 10026) with ESMTP id Bek7w5AxeS_m; Mon, 30 Oct 2023 18:25:32 -0400 (EDT) Received: from localhost.localdomain (unknown [192.168.51.254]) by mail.savoirfairelinux.com (Postfix) with ESMTPSA id 96B1F9C2C3E; Mon, 30 Oct 2023 18:25:31 -0400 (EDT) From: Alassane Yattara To: toaster@lists.yoctoproject.org Cc: Alassane Yattara Subject: [PATCH 3/3] Toaster: Test jumbotron links visible and clickable Date: Mon, 30 Oct 2023 23:25:13 +0100 Message-Id: <20231030222513.403014-3-alassane.yattara@savoirfairelinux.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231030222513.403014-1-alassane.yattara@savoirfairelinux.com> References: <20231030222513.403014-1-alassane.yattara@savoirfairelinux.com> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Mon, 30 Oct 2023 22:25:36 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/toaster/message/5914 Test that the followings link are visible and clickable: - OpenEmbedded - BitBake - Yocto Project - Read the Toaster manual - Contribute to Toaster Signed-off-by: Alassane Yattara --- .../tests/browser/test_landing_page.py | 89 ++++++++++++++++++- 1 file changed, 88 insertions(+), 1 deletion(-) diff --git a/lib/toaster/tests/browser/test_landing_page.py b/lib/toaster/tests/browser/test_landing_page.py index e731af22..ecbc0af3 100644 --- a/lib/toaster/tests/browser/test_landing_page.py +++ b/lib/toaster/tests/browser/test_landing_page.py @@ -12,7 +12,7 @@ from django.urls import reverse from django.utils import timezone from tests.browser.selenium_helpers import SeleniumTestCase -from orm.models import Project, Build +from orm.models import Layer, Layer_Version, Project, Build class TestLandingPage(SeleniumTestCase): """ Tests for redirects on the landing page """ @@ -61,6 +61,93 @@ class TestLandingPage(SeleniumTestCase): 'http://docs.yoctoproject.org/toaster-manual/index.html#toaster-user-manual') self.assertTrue("Documentation" in documentation_link.text) + def test_openembedded_jumbotron_link_visible_and_clickable(self): + """ Test OpenEmbedded link jumbotron is visible and clickable: """ + self.get(reverse('landing')) + jumbotron = self.find('.jumbotron') + + # check OpenEmbedded + openembedded = jumbotron.find_element_by_link_text('OpenEmbedded') + self.assertTrue(openembedded.is_displayed()) + openembedded.click() + self.assertTrue("openembedded.org" in self.driver.current_url) + + def test_bitbake_jumbotron_link_visible_and_clickable(self): + """ Test BitBake link jumbotron is visible and clickable: """ + self.get(reverse('landing')) + jumbotron = self.find('.jumbotron') + + # check BitBake + bitbake = jumbotron.find_element_by_link_text('BitBake') + self.assertTrue(bitbake.is_displayed()) + bitbake.click() + self.assertTrue("yoctoproject.org/software-item/bitbake" in self.driver.current_url) + + def test_yoctoproject_jumbotron_link_visible_and_clickable(self): + """ Test Yocto Project link jumbotron is visible and clickable: """ + self.get(reverse('landing')) + jumbotron = self.find('.jumbotron') + + # check Yocto Project + yoctoproject = jumbotron.find_element_by_link_text('Yocto Project') + self.assertTrue(yoctoproject.is_displayed()) + yoctoproject.click() + self.assertTrue("yoctoproject.org" in self.driver.current_url) + + def test_link_setup_usign_toaster_visible_and_clickable(self): + """ Test big magenta button setting up and using toaster link in jumbotron + if visible and clickable + """ + self.get(reverse('landing')) + jumbotron = self.find('.jumbotron') + + # check Big magenta button + big_magenta_button = jumbotron.find_element_by_link_text( + 'Toaster is ready to capture your command line builds' + ) + self.assertTrue(big_magenta_button.is_displayed()) + big_magenta_button.click() + self.assertTrue("docs.yoctoproject.org/toaster-manual/setup-and-use.html#setting-up-and-using-toaster" in self.driver.current_url) + + def test_link_create_new_project_in_jumbotron_visible_and_clickable(self): + """ Test big blue button create new project jumbotron if visible and clickable """ + # Create a layer and a layer version to make visible the big blue button + layer = Layer.objects.create(name='bar') + Layer_Version.objects.create(layer=layer) + + self.get(reverse('landing')) + jumbotron = self.find('.jumbotron') + + # check Big Blue button + big_blue_button = jumbotron.find_element_by_link_text( + 'Create your first Toaster project to run manage builds' + ) + self.assertTrue(big_blue_button.is_displayed()) + big_blue_button.click() + self.assertTrue("toastergui/newproject/" in self.driver.current_url) + + def test_toaster_manual_link_visible_and_clickable(self): + """ Test Read the Toaster manual link jumbotron is visible and clickable: """ + self.get(reverse('landing')) + jumbotron = self.find('.jumbotron') + + # check Read the Toaster manual + toaster_manual = jumbotron.find_element_by_link_text('Read the Toaster manual') + self.assertTrue(toaster_manual.is_displayed()) + toaster_manual.click() + self.assertTrue("https://docs.yoctoproject.org/toaster-manual/index.html#toaster-user-manual" in self.driver.current_url) + + def test_contrib_to_toaster_link_visible_and_clickable(self): + """ Test Contribute to Toaster link jumbotron is visible and clickable: """ + self.get(reverse('landing')) + jumbotron = self.find('.jumbotron') + + # check Contribute to Toaster + contribute_to_toaster = jumbotron.find_element_by_link_text('Contribute to Toaster') + self.assertTrue(contribute_to_toaster.is_displayed()) + contribute_to_toaster.click() + self.assertTrue("wiki.yoctoproject.org/wiki/contribute_to_toaster" in str(self.driver.current_url).lower()) + def test_only_default_project(self): """ No projects except default