예제 #1
0
    def test_search_pagination(self, mozwebqa):
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        # Set the date range to 2013-01-01 -> today so that we're more
        # likely to have so many messages in the results that it
        # paginates. Otherwise it might not paginate on stage or local
        # environments.
        dashboard_pg.set_date_range('2013-01-01')
        dashboard_pg.search_for(self.SEARCH_TERM)

        # Check the total message count. If it's less than 50 (two
        # pages worth), then we will fail with a helpful message.
        assert dashboard_pg.total_message_count >= 50, 'Not enough data to test. Add more data.'

        assert dashboard_pg.is_older_messages_link_visible is True
        assert dashboard_pg.is_newer_messages_link_visible is False
        assert dashboard_pg.older_messages_link == 'Older Messages'

        dashboard_pg.click_older_messages()
        assert dashboard_pg.search_term_from_url == self.SEARCH_TERM

        assert dashboard_pg.is_older_messages_link_visible is True
        assert dashboard_pg.is_newer_messages_link_visible is True
        assert dashboard_pg.older_messages_link == 'Older Messages'
        assert dashboard_pg.newer_messages_link == 'Newer Messages'
        assert dashboard_pg.page_from_url == 2

        dashboard_pg.click_newer_messages()
        assert dashboard_pg.search_term_from_url == self.SEARCH_TERM

        assert dashboard_pg.is_older_messages_link_visible is True
        assert dashboard_pg.is_newer_messages_link_visible is False
        assert dashboard_pg.older_messages_link == 'Older Messages'
        assert dashboard_pg.page_from_url == 1
예제 #2
0
    def test_search_pagination(self, mozwebqa):
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        # Set the date range to 2013-01-01 -> today so that we're more
        # likely to have so many messages in the results that it
        # paginates. Otherwise it might not paginate on stage or local
        # environments.
        dashboard_pg.set_date_range('2013-01-01')
        dashboard_pg.search_for(self.SEARCH_TERM)

        # Check the total message count. If it's less than 50 (two
        # pages worth), then we will fail with a helpful message.
        Assert.greater(dashboard_pg.total_message_count, 50, "Search term didn't kick up enough messages. Please prime the server with more data!")

        Assert.true(dashboard_pg.is_older_messages_link_visible)
        Assert.false(dashboard_pg.is_newer_messages_link_visible)
        Assert.equal(dashboard_pg.older_messages_link, 'Older Messages')

        dashboard_pg.click_older_messages()
        Assert.equal(dashboard_pg.search_term_from_url, self.SEARCH_TERM)

        Assert.true(dashboard_pg.is_older_messages_link_visible)
        Assert.true(dashboard_pg.is_newer_messages_link_visible)
        Assert.equal(dashboard_pg.older_messages_link, 'Older Messages')
        Assert.equal(dashboard_pg.newer_messages_link, 'Newer Messages')
        Assert.equal(dashboard_pg.page_from_url, 2)

        dashboard_pg.click_newer_messages()
        Assert.equal(dashboard_pg.search_term_from_url, self.SEARCH_TERM)

        Assert.true(dashboard_pg.is_older_messages_link_visible)
        Assert.false(dashboard_pg.is_newer_messages_link_visible)
        Assert.equal(dashboard_pg.older_messages_link, 'Older Messages')
        Assert.equal(dashboard_pg.page_from_url, 1)
예제 #3
0
    def test_submit_sad_feedback(self, mozwebqa):
        timestamp = str(time.time())
        desc = 'input-tests testing sad fxos feedback ' + timestamp

        # 1. go to the feedback form
        feedback_pg = FxOSFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page()

        # 2. click on happy
        feedback_pg.click_sad_feedback()

        # 3. pick default country
        feedback_pg.click_country_next()

        # 4. pick default device
        feedback_pg.click_device_next()

        # 5. fill in description
        feedback_pg.set_description(desc)

        # 6. submit
        feedback_pg.submit(expect_success=True)
        self.take_a_breather()
        assert feedback_pg.current_card == 'thanks'

        # 7. verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        assert resp.type.strip() == 'Sad'
        assert resp.body.strip() == desc.strip()
        assert resp.locale.strip() == 'English (US)'
예제 #4
0
    def test_submit_happy_feedback_with_unicode(self, mozwebqa):
        """Fill out happy feedback with unicode description"""
        timestamp = unicode(time.time())
        desc = u"input-tests testing happy feedback with unicode \u2603"
        desc = desc + u" " + timestamp

        # 1. go to the feedback form
        feedback_pg = GenericFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page("firefox")

        # 2. click on happy
        feedback_pg.click_happy_feedback()

        # 3. fill out description and url
        feedback_pg.set_description(desc)

        # 4. submit
        thanks_pg = feedback_pg.submit(expect_success=True)
        assert thanks_pg.is_the_current_page

        # 5. verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        assert resp.type.strip() == "Happy"
        assert resp.body.strip() == desc.strip()
예제 #5
0
    def test_submit_sad_feedback(self, mozwebqa):
        timestamp = str(time.time())
        desc = "input-tests testing sad feedback " + timestamp
        url = "http://sad.example.com/" + timestamp

        # 1. go to the feedback form
        feedback_pg = GenericFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page("firefox")

        # 2. click on sad
        feedback_pg.click_sad_feedback()

        # 3. fill out description, url, email checkbox and email
        # address
        feedback_pg.set_description(desc)
        feedback_pg.set_url(url)
        feedback_pg.check_email_checkbox()
        feedback_pg.set_email("*****@*****.**")

        # 4. submit
        thanks_pg = feedback_pg.submit(expect_success=True)
        assert thanks_pg.is_the_current_page

        # 5. verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        assert resp.type.strip() == "Sad"
        assert resp.body.strip() == desc.strip()
        assert resp.locale.strip() == "English (US)"
        assert resp.site.strip() == "example.com"
예제 #6
0
    def test_submit_happy_feedback_with_unicode(self, mozwebqa):
        """Fill out happy feedback with unicode description"""
        timestamp = unicode(time.time())
        desc = u'input-tests testing happy feedback with unicode \u2603'
        desc = desc + u' ' + timestamp

        # 1. go to the feedback form
        feedback_pg = GenericFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page()

        # 2. click on happy
        feedback_pg.click_happy_feedback()

        # 3. fill out description and url
        feedback_pg.set_description(desc)
        feedback_pg.click_moreinfo_next()

        # 4. submit
        thanks_pg = feedback_pg.submit(expect_success=True)
        Assert.true(thanks_pg.is_the_current_page)

        # 5. verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        Assert.equal(resp.type.strip(), 'Happy')
        Assert.equal(resp.body.strip(), desc.strip())
예제 #7
0
    def test_submit_sad_feedback_using_prefill(self, mozwebqa):
        timestamp = str(time.time())
        desc = 'input-tests testing sad feedback ' + timestamp

        # 1. go to the feedback form with sad prefill
        feedback_pg = GenericFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page(
            'firefox', querystring='happy=0&url=http%3A%2F%2Fwww.mozilla.org')

        # 2. fill out description
        feedback_pg.set_description(desc)

        # 3. submit
        thanks_pg = feedback_pg.submit(expect_success=True)
        assert thanks_pg.is_the_current_page

        # 4. verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        assert resp.type.strip() == 'Sad'
        assert resp.url.strip() == 'http://www.mozilla.org'
        assert resp.body.strip() == desc.strip()
        assert resp.locale.strip() == 'English (US)'
예제 #8
0
    def test_submit_happy_feedback(self, mozwebqa):
        timestamp = str(time.time())
        desc = 'input-tests testing happy feedback ' + timestamp
        url = 'http://happy.example.com/' + timestamp

        # 1. go to the feedback form
        feedback_pg = GenericFeedbackFormDevPage(mozwebqa)
        feedback_pg.go_to_feedback_page('firefox')

        # 2. click on happy
        feedback_pg.click_happy_feedback()

        # 3. fill out description, url, email checkbox and email
        # address
        feedback_pg.set_description(desc)
        feedback_pg.set_url(url)
        feedback_pg.check_email_checkbox()
        feedback_pg.set_email('*****@*****.**')

        # 4. submit
        thanks_pg = feedback_pg.submit(expect_success=True)
        Assert.true(thanks_pg.is_the_current_page)

        # 5. verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        Assert.equal(resp.type.strip(), 'Happy')
        Assert.equal(resp.body.strip(), desc.strip())
        Assert.equal(resp.locale.strip(), 'English (US)')
        Assert.equal(resp.site.strip(), 'example.com')
예제 #9
0
    def test_submit_sad_feedback(self, mozwebqa):
        timestamp = str(time.time())
        desc = 'input-tests testing sad feedback ' + timestamp
        url = 'http://sad.example.com/' + timestamp

        # 1. go to the feedback form
        feedback_pg = GenericFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page()

        # 2. click on sad
        feedback_pg.click_sad_feedback()

        # 3. fill out description and url
        feedback_pg.set_description(desc)
        feedback_pg.set_url(url)
        feedback_pg.click_moreinfo_next()

        # 4. fill in email address
        feedback_pg.check_email_checkbox()
        feedback_pg.set_email('*****@*****.**')

        # 5. submit
        thanks_pg = feedback_pg.submit(expect_success=True)
        Assert.true(thanks_pg.is_the_current_page)

        # 6. verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        Assert.equal(resp.type.strip(), 'Sad')
        Assert.equal(resp.body.strip(), desc.strip())
        Assert.equal(resp.locale.strip(), 'English (US)')
        Assert.equal(resp.site.strip(), 'example.com')
예제 #10
0
    def test_submit_sad_feedback(self, mozwebqa):
        timestamp = str(time.time())
        desc = 'input-tests testing sad feedback ' + timestamp
        url = 'http://sad.example.com/' + timestamp

        # 1. go to the feedback form
        feedback_pg = GenericFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page('firefox')

        # 2. click on sad
        feedback_pg.click_sad_feedback()

        # 3. fill out description, url, email checkbox and email
        # address
        feedback_pg.set_description(desc)
        feedback_pg.set_url(url)
        feedback_pg.check_email_checkbox()
        feedback_pg.set_email('*****@*****.**')

        # 4. submit
        thanks_pg = feedback_pg.submit(expect_success=True)
        Assert.true(thanks_pg.is_the_current_page)

        # 5. verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        Assert.equal(resp.type.strip(), 'Sad')
        Assert.equal(resp.body.strip(), desc.strip())
        Assert.equal(resp.locale.strip(), 'English (US)')
        Assert.equal(resp.site.strip(), 'example.com')
예제 #11
0
    def test_submit_happy_feedback_with_unicode(self, mozwebqa):
        """Fill out happy feedback with unicode description"""
        timestamp = unicode(time.time())
        desc = u'input-tests testing happy feedback with unicode \u2603'
        desc = desc + u' ' + timestamp

        # 1. go to the feedback form
        feedback_pg = GenericFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page('firefox')

        # 2. click on happy
        feedback_pg.click_happy_feedback()

        # 3. fill out description and url
        feedback_pg.set_description(desc)

        # 4. submit
        thanks_pg = feedback_pg.submit(expect_success=True)
        Assert.true(thanks_pg.is_the_current_page)

        # 5. verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        Assert.equal(resp.type.strip(), 'Happy')
        Assert.equal(resp.body.strip(), desc.strip())
예제 #12
0
    def test_that_we_can_search_feedback_with_unicode(self, mozwebqa):
        dashboard_pg = DashboardPage(mozwebqa)

        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(u"p\xe1gina")
        # There's no way to guarantee that the search we did finds
        # responses on the page. So we check for one of two possible
        # scenarios: existences of responses or a message count of 0.
        assert dashboard_pg.no_messages or (len(dashboard_pg.messages) > 0)
예제 #13
0
    def test_that_we_can_search_feedback_with_unicode(self, mozwebqa):
        dashboard_pg = DashboardPage(mozwebqa)

        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(u"p\xe1gina")
        # There's no way to guarantee that the search we did finds
        # responses on the page. So we check for one of two possible
        # scenarios: existences of responses or a message count of 0.
        assert dashboard_pg.no_messages or (len(dashboard_pg.messages) > 0)
예제 #14
0
    def test_submit_happy_feedback(self, mozwebqa):
        timestamp = str(time.time())
        desc = 'input-tests testing happy fxos feedback ' + timestamp

        # 1. go to the feedback form
        feedback_pg = FxOSFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page()

        # Verify there is a privacy link
        feedback_pg.has_privacy_link

        # 2. click on happy
        feedback_pg.click_happy_feedback()

        # 3. pick default country
        feedback_pg.click_country_next()

        # 4. pick default device
        feedback_pg.click_device_next()

        # 5. fill in description
        feedback_pg.has_privacy_link
        assert feedback_pg.is_submit_enabled is False
        feedback_pg.set_description(desc)
        assert feedback_pg.is_submit_enabled is True

        # 6. fill in url
        feedback_pg.set_url('http://example.com/foo')

        # 7. fill in email address
        # FIXME: check email input disabled
        feedback_pg.check_email_checkbox()
        # FIXME: check email input enabled
        feedback_pg.set_email('*****@*****.**')

        # 8. submit
        feedback_pg.submit(expect_success=True)
        self.take_a_breather()
        assert feedback_pg.current_card == 'thanks'

        # 9. verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        assert resp.type.strip() == 'Happy'
        assert resp.body.strip() == desc.strip()
        assert resp.locale.strip() == 'English (US)'
예제 #15
0
    def test_submitting_same_feedback_twice(self, mozwebqa):
        """Submitting the same feedback twice ignores the second"""
        timestamp = str(time.time())
        desc = 'input-tests testing repeat feedback ' + timestamp

        # Submit the feedback the first time
        feedback_pg = GenericFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page()
        feedback_pg.click_happy_feedback()
        feedback_pg.set_description(desc)
        feedback_pg.click_moreinfo_next()
        thanks_pg = feedback_pg.submit(expect_success=True)
        Assert.true(thanks_pg.is_the_current_page)

        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        Assert.equal(resp.body.strip(), desc.strip())
        first_id = resp.response_id.strip()

        # Submit it a second time--we get the Thank You page again and
        # it looks identical to the first time.
        feedback_pg = GenericFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page()
        feedback_pg.click_happy_feedback()
        feedback_pg.set_description(desc)
        feedback_pg.click_moreinfo_next()
        thanks_pg = feedback_pg.submit(expect_success=True)
        Assert.true(thanks_pg.is_the_current_page)

        # Check the dashboard again and make sure the most recent
        # response has the same created time as the first time. If it
        # does, then
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        Assert.equal(resp.body.strip(), desc.strip())
        second_id = resp.response_id.strip()

        # The two ids should be the same because the second response
        # didn't go through.
        Assert.equal(first_id, second_id)
예제 #16
0
    def test_submit_happy_feedback(self, mozwebqa):
        timestamp = str(time.time())
        desc = 'input-tests testing happy fxos feedback ' + timestamp

        # 1. go to the feedback form
        feedback_pg = FxOSFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page()

        # 2. click on happy
        feedback_pg.click_happy_feedback()

        # 3. pick default country
        feedback_pg.click_country_next()

        # 4. pick default device
        feedback_pg.click_device_next()

        # 5. fill in description
        Assert.false(feedback_pg.is_moreinfo_next_enabled)
        feedback_pg.set_description(desc)
        Assert.true(feedback_pg.is_moreinfo_next_enabled)
        feedback_pg.click_moreinfo_next()

        self.take_a_breather()

        # 6. fill in email address
        feedback_pg.check_email_checkbox()
        feedback_pg.set_email('*****@*****.**')

        # 7. submit
        feedback_pg.submit(expect_success=True)
        self.take_a_breather()
        Assert.equal(feedback_pg.current_card, 'thanks')

        # 8. verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        Assert.equal(resp.type.strip(), 'Happy')
        Assert.equal(resp.body.strip(), desc.strip())
        Assert.equal(resp.locale.strip(), 'English (US)')
예제 #17
0
    def test_submit_happy_feedback(self, mozwebqa):
        timestamp = str(time.time())
        desc = 'input-tests testing happy fxos feedback ' + timestamp

        # 1. go to the feedback form
        feedback_pg = FxOSFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page()

        # 2. click on happy
        feedback_pg.click_happy_feedback()

        # 3. pick default country
        feedback_pg.click_country_next()

        # 4. pick default device
        feedback_pg.click_device_next()

        # 5. fill in description
        Assert.false(feedback_pg.is_moreinfo_next_enabled)
        feedback_pg.set_description(desc)
        Assert.true(feedback_pg.is_moreinfo_next_enabled)
        feedback_pg.click_moreinfo_next()

        self.take_a_breather()

        # 6. fill in email address
        feedback_pg.check_email_checkbox()
        feedback_pg.set_email('*****@*****.**')

        # 7. submit
        feedback_pg.submit(expect_success=True)
        self.take_a_breather()
        Assert.equal(feedback_pg.current_card, 'thanks')

        # 8. verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        Assert.equal(resp.type.strip(), 'Happy')
        Assert.equal(resp.body.strip(), desc.strip())
        Assert.equal(resp.locale.strip(), 'English (US)')
예제 #18
0
    def test_submitting_same_feedback_twice(self, mozwebqa):
        """Submitting the same feedback twice ignores the second"""
        timestamp = str(time.time())
        desc = 'input-tests testing repeat feedback ' + timestamp

        # Submit the feedback the first time
        feedback_pg = GenericFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page('firefox')
        feedback_pg.click_happy_feedback()
        feedback_pg.set_description(desc)
        thanks_pg = feedback_pg.submit(expect_success=True)
        Assert.true(thanks_pg.is_the_current_page)

        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        Assert.equal(resp.body.strip(), desc.strip())
        first_id = resp.response_id.strip()

        # Submit it a second time--we get the Thank You page again and
        # it looks identical to the first time.
        feedback_pg = GenericFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page('firefox')
        feedback_pg.click_happy_feedback()
        feedback_pg.set_description(desc)
        thanks_pg = feedback_pg.submit(expect_success=True)
        Assert.true(thanks_pg.is_the_current_page)

        # Check the dashboard again and make sure the most recent
        # response has the same created time as the first time. If it
        # does, then
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        Assert.equal(resp.body.strip(), desc.strip())
        second_id = resp.response_id.strip()

        # The two ids should be the same because the second response
        # didn't go through.
        Assert.equal(first_id, second_id)
예제 #19
0
    def test_submit_sad_feedback(self, mozwebqa):
        feedback_pg = AndroidFeedbackFormPage(mozwebqa)
        timestamp = str(time.time())
        desc = 'input-tests testing sad android feedback ' + timestamp
        version = "44"
        channel = "beta"
        last_url = "http://mozilla.com"
        on_device = True

        # 1. Go to feedback page and click sad
        feedback_pg.go_to_feedback_page(version, channel, last_url, on_device)
        feedback_pg.click_sad_feedback()
        assert feedback_pg.current_sentiment == 'sad'

        # 2. Look for Support link
        assert feedback_pg.support_link_present

        # 3. Look for URL we passed
        assert feedback_pg.url_prepopulated() == last_url

        # 4. don't send the URL
        feedback_pg.uncheck_url()

        # 5. fill in description
        feedback_pg.set_description(desc)

        # 6. submit
        feedback_pg.submit(expect_success=True)
        self.take_a_breather()
        assert feedback_pg.current_card == 'thanks'

        # 7. verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        assert resp.type.strip() == 'Sad'
        assert resp.body.strip() == desc.strip()
        assert resp.locale.strip() == 'English (US)'
        # we didn't send the url, it should not be here
        assert resp.site.strip() != last_url
예제 #20
0
    def test_submit_sad_feedback_using_prefill(self, mozwebqa):
        timestamp = str(time.time())
        desc = "input-tests testing sad feedback " + timestamp

        # 1. go to the feedback form with sad prefill
        feedback_pg = GenericFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page("firefox", querystring="happy=0")

        # 2. fill out description
        feedback_pg.set_description(desc)

        # 3. submit
        thanks_pg = feedback_pg.submit(expect_success=True)
        assert thanks_pg.is_the_current_page

        # 4. verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        assert resp.type.strip() == "Sad"
        assert resp.body.strip() == desc.strip()
        assert resp.locale.strip() == "English (US)"
예제 #21
0
파일: test_submit.py 프로젝트: lonnen/fjord
    def test_submit_sad_feedback_using_prefill(self, mozwebqa):
        timestamp = str(time.time())
        desc = 'input-tests testing sad feedback ' + timestamp

        # 1. go to the feedback form with sad prefill
        feedback_pg = GenericFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page('firefox', querystring='happy=0')

        # 2. fill out description
        feedback_pg.set_description(desc)

        # 3. submit
        thanks_pg = feedback_pg.submit(expect_success=True)
        Assert.true(thanks_pg.is_the_current_page)

        # 4. verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        Assert.equal(resp.type.strip(), 'Sad')
        Assert.equal(resp.body.strip(), desc.strip())
        Assert.equal(resp.locale.strip(), 'English (US)')
예제 #22
0
    def test_submit_sad_feedback(self, mozwebqa):
        feedback_pg = AndroidFeedbackFormPage(mozwebqa)
        timestamp = str(time.time())
        desc = 'input-tests testing sad android feedback ' + timestamp
        version = "44"
        channel = "beta"
        on_device = True
        last_url = "mozilla.com"

        # Go to feedback page and click sad
        feedback_pg.go_to_feedback_page(version, channel, on_device)
        feedback_pg.click_sad_feedback()
        assert feedback_pg.current_sentiment == 'sad'

        # Look for Support link
        assert feedback_pg.support_link_present

        # fill in description
        feedback_pg.set_description(desc)

        # fill in the URL
        feedback_pg.set_url(last_url)

        # submit
        feedback_pg.submit(expect_success=True)
        self.take_a_breather()
        assert feedback_pg.current_card == 'thanks'

        # verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        assert resp.type.strip() == 'Sad'
        assert resp.body.strip() == desc.strip()
        assert resp.locale.strip() == 'English (US)'
        assert resp.site.strip() == last_url
예제 #23
0
    def test_submit_sad_feedback(self, mozwebqa):
        feedback_pg = AndroidFeedbackFormPage(mozwebqa)
        timestamp = str(time.time())
        desc = 'input-tests testing sad android feedback ' + timestamp
        version = "44"
        channel = "beta"
        on_device = True
        last_url = "mozilla.com"

        # Go to feedback page and click sad
        feedback_pg.go_to_feedback_page(version, channel, on_device)
        feedback_pg.click_sad_feedback()
        assert feedback_pg.current_sentiment == 'sad'

        # Look for Support link
        assert feedback_pg.support_link_present

        # fill in description
        feedback_pg.set_description(desc)

        # fill in the URL
        feedback_pg.set_url(last_url)

        # submit
        feedback_pg.submit(expect_success=True)
        self.take_a_breather()
        assert feedback_pg.current_card == 'thanks'

        # verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        assert resp.type.strip() == 'Sad'
        assert resp.body.strip() == desc.strip()
        assert resp.locale.strip() == 'English (US)'
        assert resp.site.strip() == last_url
예제 #24
0
    def test_search_pagination(self, mozwebqa):
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        # Set the date range to 2013-01-01 -> today so that we're more
        # likely to have so many messages in the results that it
        # paginates. Otherwise it might not paginate on stage or local
        # environments.
        dashboard_pg.set_date_range('2013-01-01')
        dashboard_pg.search_for(self.SEARCH_TERM)

        # Check the total message count. If it's less than 50 (two
        # pages worth), then we will fail with a helpful message.
        Assert.greater(
            dashboard_pg.total_message_count, 50,
            "Search term didn't kick up enough messages. Please prime the server with more data!"
        )

        Assert.true(dashboard_pg.is_older_messages_link_visible)
        Assert.false(dashboard_pg.is_newer_messages_link_visible)
        Assert.equal(dashboard_pg.older_messages_link, 'Older Messages')

        dashboard_pg.click_older_messages()
        Assert.equal(dashboard_pg.search_term_from_url, self.SEARCH_TERM)

        Assert.true(dashboard_pg.is_older_messages_link_visible)
        Assert.true(dashboard_pg.is_newer_messages_link_visible)
        Assert.equal(dashboard_pg.older_messages_link, 'Older Messages')
        Assert.equal(dashboard_pg.newer_messages_link, 'Newer Messages')
        Assert.equal(dashboard_pg.page_from_url, 2)

        dashboard_pg.click_newer_messages()
        Assert.equal(dashboard_pg.search_term_from_url, self.SEARCH_TERM)

        Assert.true(dashboard_pg.is_older_messages_link_visible)
        Assert.false(dashboard_pg.is_newer_messages_link_visible)
        Assert.equal(dashboard_pg.older_messages_link, 'Older Messages')
        Assert.equal(dashboard_pg.page_from_url, 1)
예제 #25
0
    def test_submit_happy_feedback(self, mozwebqa):
        timestamp = str(time.time())
        desc = 'input-tests testing happy feedback ' + timestamp
        url = 'http://happy.example.com/' + timestamp

        # 1. go to the feedback form
        feedback_pg = GenericFeedbackFormPage(mozwebqa)
        feedback_pg.go_to_feedback_page('firefox')

        # Verify there is a privacy link
        feedback_pg.has_privacy_link

        # 2. click on happy
        feedback_pg.click_happy_feedback()

        # 3. fill out description, url, email checkbox and email
        # address
        feedback_pg.has_privacy_link
        feedback_pg.set_description(desc)
        feedback_pg.set_url(url)
        feedback_pg.check_email_checkbox()
        feedback_pg.set_email('*****@*****.**')

        # 4. submit
        thanks_pg = feedback_pg.submit(expect_success=True)
        assert thanks_pg.is_the_current_page

        # 5. verify
        dashboard_pg = DashboardPage(mozwebqa)
        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for(desc)
        resp = dashboard_pg.messages[0]
        assert resp.type.strip() == 'Happy'
        assert resp.body.strip() == desc.strip()
        assert resp.locale.strip() == 'English (US)'
        assert resp.site.strip() == 'example.com'
예제 #26
0
    def test_that_empty_search_of_feedback_returns_some_data(self, mozwebqa):
        dashboard_pg = DashboardPage(mozwebqa)

        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for('')
        assert len(dashboard_pg.messages) > 0
예제 #27
0
    def test_that_empty_search_of_feedback_returns_some_data(self, mozwebqa):
        dashboard_pg = DashboardPage(mozwebqa)

        dashboard_pg.go_to_dashboard_page()
        dashboard_pg.search_for("")
        assert len(dashboard_pg.messages) > 0