From patchwork Mon Oct 30 22:26:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alassane Yattara X-Patchwork-Id: 33143 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 34B0EC4332F for ; Mon, 30 Oct 2023 22:26:36 +0000 (UTC) Received: from mail.savoirfairelinux.com (mail.savoirfairelinux.com [208.88.110.44]) by mx.groups.io with SMTP id smtpd.web10.172790.1698704789391039261 for ; Mon, 30 Oct 2023 15:26:30 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@savoirfairelinux.com header.s=DFC430D2-D198-11EC-948E-34200CB392D2 header.b=RyPqr0f0; 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 AEF129C332D for ; Mon, 30 Oct 2023 18:26:28 -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 A4MnrUOaBY6o; Mon, 30 Oct 2023 18:26:28 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 24FE29C3231; Mon, 30 Oct 2023 18:26:28 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.savoirfairelinux.com 24FE29C3231 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=savoirfairelinux.com; s=DFC430D2-D198-11EC-948E-34200CB392D2; t=1698704788; bh=dJpALff2FRALUs6m+BZZFjVAVIE4fVkTGptccUjZhD8=; h=From:To:Date:Message-Id:MIME-Version; b=RyPqr0f0MoxFmF4yKw3VoXgMHSh0JccPWXoNITzFYNAkcs6gy5XGT25WO1BLFhGTw eSWMeqoBOEqkEJGwE4p8vMK0j5J0Ji2tUJH+dAaHTFxZEVMoKXLf9rUCddpFrheOJz 4DGHSIssZzJDMPHB9wTHEG96/BU2/3c9mNJ9x3jogDvRkGR6tU2i9LhDYurK5n7pNU YUetbmv83RBshbm26ydbSNDDwTvBo6ijr8KBYQm3i45MzwXmNl/ineeNfg7xepbk/6 WkpVJPop14kuEzhLZm6kFOU0vpUyo5KvnB0nFrvMPZhVttQTvJtWdOBH3TMTUmnr/F 4hB+Vsil/uxvw== 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 PXDkPQd7_9lo; Mon, 30 Oct 2023 18:26:27 -0400 (EDT) Received: from localhost.localdomain (unknown [192.168.51.254]) by mail.savoirfairelinux.com (Postfix) with ESMTPSA id 1F0999C0C62; Mon, 30 Oct 2023 18:26:26 -0400 (EDT) From: Alassane Yattara To: bitbake-devel@lists.openembedded.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:26:16 +0100 Message-Id: <20231030222618.404081-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:26:36 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/15333 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:26:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alassane Yattara X-Patchwork-Id: 33145 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 6E7DFC4167B for ; Mon, 30 Oct 2023 22:26:36 +0000 (UTC) Received: from mail.savoirfairelinux.com (mail.savoirfairelinux.com [208.88.110.44]) by mx.groups.io with SMTP id smtpd.web10.172791.1698704790451230298 for ; Mon, 30 Oct 2023 15:26:30 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@savoirfairelinux.com header.s=DFC430D2-D198-11EC-948E-34200CB392D2 header.b=vY1KszKC; 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 CC6969C332F for ; Mon, 30 Oct 2023 18:26:29 -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 x6VfWc0cKrir; Mon, 30 Oct 2023 18:26:29 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 3FD059C3231; Mon, 30 Oct 2023 18:26:29 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.savoirfairelinux.com 3FD059C3231 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=savoirfairelinux.com; s=DFC430D2-D198-11EC-948E-34200CB392D2; t=1698704789; bh=hoj5Z+H1lnrzriSY58HGeJeI91BUA3QSPERLn9+Zrs0=; h=From:To:Date:Message-Id:MIME-Version; b=vY1KszKCyTeQq2LsjLCSNfViMMPRaqk5MIUxRZQ+oGC7SBEsjqJ+65fsn2uOb0UIw q04V2UV1oegVsHSEJGGcBc6m2O+D4xcwm5auULYZ86lqPBvIp7iYW6GfK++5DAJ/F0 6TfoEAbekIQRw8ZN/8omtougKifKHl7R8/4oDWzAg99FaMv48SN0dqZEHMD0xq0VKG ju0oA80p58S2OW6Zd1ImmezcegwcjpO7Hf3zllgluGwKBP3PeIKKSoPVztJw7lTPTb Fn9rd5DiY1i9A66UT6NoRGz1Ecv9l6aiX91+jLhF1XXSpANVUBePan6EZBwH7m1+z/ L0j71AFKW7bnA== 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 S2VSr6tVhGdM; Mon, 30 Oct 2023 18:26:29 -0400 (EDT) Received: from localhost.localdomain (unknown [192.168.51.254]) by mail.savoirfairelinux.com (Postfix) with ESMTPSA id 54D069C0C62; Mon, 30 Oct 2023 18:26:28 -0400 (EDT) From: Alassane Yattara To: bitbake-devel@lists.openembedded.org Cc: Alassane Yattara Subject: [PATCH 2/3] Toaster: Test documentation link in landing header is displayed Date: Mon, 30 Oct 2023 23:26:17 +0100 Message-Id: <20231030222618.404081-2-alassane.yattara@savoirfairelinux.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231030222618.404081-1-alassane.yattara@savoirfairelinux.com> References: <20231030222618.404081-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:26:36 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/15334 - 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 --- 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:26:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alassane Yattara X-Patchwork-Id: 33144 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 6FA24C4167D for ; Mon, 30 Oct 2023 22:26:36 +0000 (UTC) Received: from mail.savoirfairelinux.com (mail.savoirfairelinux.com [208.88.110.44]) by mx.groups.io with SMTP id smtpd.web11.173145.1698704791739524719 for ; Mon, 30 Oct 2023 15:26:31 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@savoirfairelinux.com header.s=DFC430D2-D198-11EC-948E-34200CB392D2 header.b=ffJ05/tE; 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 29AA79C0C62 for ; Mon, 30 Oct 2023 18:26: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 5JvNsfqNJYWf; Mon, 30 Oct 2023 18:26:30 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 6B8D29C3231; Mon, 30 Oct 2023 18:26:30 -0400 (EDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.savoirfairelinux.com 6B8D29C3231 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=savoirfairelinux.com; s=DFC430D2-D198-11EC-948E-34200CB392D2; t=1698704790; bh=FbEvP139iD6VXsM1TfT6Jdts563uG2RxJf7betlj6RE=; h=From:To:Date:Message-Id:MIME-Version; b=ffJ05/tEKX8+MVSnNiYD0EJ4crhts8TqPRLlDqIcjUkO35yhxHNZ0yosbJ13H1B5N bExCp6u55CdrdUBrOe2/AcCwQ11JwGLcLAflFaHyVJlb7ge51YnZwvFsJBegf70rcm QRZ3NBvnKFh+NCEyQWPAbAwCUKaZsQlnFfAWFbpfRI7VffVaB4nAWW693PGdnOiHvu ec1lmwuoVNdseWN9QZ4Bu/sud5ZhgWOW7Oqru4dKMJJH+jWScPgM4+UV0TppHFFJF1 x/KWjpmec0dQhLkAQIoa8rRq1W5CQwDkBdhF0VWFL0io9AvVorah5N3qRkRnlutodP yYtrzebRfNyYg== 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 91WSc8bsIwjH; Mon, 30 Oct 2023 18:26:30 -0400 (EDT) Received: from localhost.localdomain (unknown [192.168.51.254]) by mail.savoirfairelinux.com (Postfix) with ESMTPSA id 8CB0B9C0C62; Mon, 30 Oct 2023 18:26:29 -0400 (EDT) From: Alassane Yattara To: bitbake-devel@lists.openembedded.org Cc: Alassane Yattara Subject: [PATCH 3/3] Toaster: Test jumbotron links visible and clickable Date: Mon, 30 Oct 2023 23:26:18 +0100 Message-Id: <20231030222618.404081-3-alassane.yattara@savoirfairelinux.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231030222618.404081-1-alassane.yattara@savoirfairelinux.com> References: <20231030222618.404081-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:26:36 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/bitbake-devel/message/15335 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