diff mbox series

[3/3] Toaster: Test jumbotron links visible and clickable

Message ID 20231030222618.404081-3-alassane.yattara@savoirfairelinux.com
State New
Headers show
Series [1/3] Toaster: Check info_sign is visible and clickable in landing page | expand

Commit Message

Alassane Yattara Oct. 30, 2023, 10:26 p.m. UTC
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 <alassane.yattara@savoirfairelinux.com>
---
 .../tests/browser/test_landing_page.py        | 89 ++++++++++++++++++-
 1 file changed, 88 insertions(+), 1 deletion(-)

Comments

Tim Orling Oct. 31, 2023, 4:04 p.m. UTC | #1
On Mon, Oct 30, 2023 at 3:26 PM Alassane Yattara <
alassane.yattara@savoirfairelinux.com> wrote:

> 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 <alassane.yattara@savoirfairelinux.com>
> ---
>  .../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):
>
Typo usign -> using


> +        """ Test big magenta button setting up and using toaster link in
> jumbotron
> +            if visible and clickable

Your patch has a trailing whitespace in the above line, please check for
that.

>
> +        """
> +        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
> --
> 2.34.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#15335):
> https://lists.openembedded.org/g/bitbake-devel/message/15335
> Mute This Topic: https://lists.openembedded.org/mt/102286646/924729
> Group Owner: bitbake-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/bitbake-devel/unsub [
> ticotimo@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
diff mbox series

Patch

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