Esempio n. 1
0
    def test_forum_new_post(self):
        """Post a new thread in the KB articles forums"""
        sel = self.selenium
        login_page_obj = login_page.LoginPage(sel)
        forums_page_obj = forums_page.ForumsPage(sel)

        user_info = sumo_test_data.SUMOtestData().getUserInfo(0)
        uname = user_info['username']
        pwd = user_info['password']
        timestamp = sel.get_eval("new Date().getTime()")
        thread_title = "Litmus 7829 test" + timestamp
        thread_text = "Litmus QA 7829 Testcase Test Msg"
        ''' Login '''
        login_page_obj.log_in(uname, pwd)
        ''' Post a new thread '''
        forums_page_obj.open(forums_page_obj.kb_articles_forum_url)
        forums_page_obj.post_new_thread_first_cat(thread_title, thread_text)

        time.sleep(5)
        self.failUnless(sel.is_text_present(thread_text))
        # Verify post title
        forums_page_obj.open(forums_page_obj.kb_articles_forum_url)
        self.failUnless(sel.is_text_present(thread_title))
        ''' Logout '''
        forums_page_obj.log_out()
Esempio n. 2
0
 def setUp(self):
     self.selenium = selenium(vars.ConnectionParameters.server,
                              vars.ConnectionParameters.port,
                              vars.ConnectionParameters.browser,
                              vars.ConnectionParameters.baseurl)
     self.selenium.start()
     self.selenium.set_timeout(vars.ConnectionParameters.page_load_timeout)
     self.accounts = sumo_test_data.SUMOtestData()
     self.functions = sumo_functions.SUMOfunctions()
Esempio n. 3
0
 def setUp(*args, **kwargs):
     setattr(test, 'browser', env)
     vars.ConnectionParameters.browser = test.browser
     #fn(*args, **kwargs)
     setattr(test, 'selenium', selenium(vars.ConnectionParameters.server,vars.ConnectionParameters.port,env,vars.ConnectionParameters.baseurl))
     test.selenium.start()
     test.selenium.window_maximize()
     test.selenium.set_timeout(vars.ConnectionParameters.page_load_timeout)
     setattr(test, 'accounts', sumo_test_data.SUMOtestData())
     setattr(test, 'functions', sumo_functions.SUMOfunctions())
 def test_no_query_adv_forum_search(self):
     sel = self.selenium
     user = sumo_test_data.SUMOtestData().getUserInfo(0)
     sumo_func = sumo_functions.SUMOfunctions()
     sumo_func.open(sel, "en-US/search?a=2")
     # clicks support form tab
     sel.click("css=div#search-tabs > ul > li:nth-child(2) > a")
     sel.type("id_asked_by", user['username'])
     sel.click("css=form#support input[value='Search']")
     sel.wait_for_page_to_load(vars.ConnectionParameters.page_load_timeout)
     self.failUnless(
         "refine" in sel.get_attribute(
             "css=div#basic-search > form > input:nth-child(13)@class"),
         "refine class not found")
    def test_forum_deletion(self):
        '''Checks bug 569310 (accidental forum deletion)'''
        sel = self.selenium
        login_page_obj   = login_page.LoginPage(sel)
        forums_page_obj  = forums_page.ForumsPage(sel)
        
        user_adm = 1
        thread_num = str(random.randint(100, 10000))
        user_info       = sumo_test_data.SUMOtestData().getUserInfo(user_adm)
        uname           = user_info['username']
        pwd             = user_info['password']
        
        ''' Login '''
        login_page_obj.log_in(uname, pwd)       
        
        ''' Post a new thread '''

        thread_title = 'test_thread_' + thread_num
        thread_text = 'some text'
        ''' Post a new thread '''
        forums_page_obj.go_to_forums_cat_list_page()
        forums_page_obj.click(forums_page_obj.first_cat_forum_link,True)
        forums_page_obj.post_new_thread_first_cat(thread_title,thread_text)
               
        thread_loc = str(sel.get_location())
        thread_loc_arr = thread_loc.split('/')
        url1 = thread_loc_arr[len(thread_loc_arr) - 2]
        url2 = thread_loc_arr[len(thread_loc_arr) - 1]    
        thread_loc = vars.ConnectionParameters.baseurl_ssl+'/en-US/forums/%s/%s' % (url1, url2)

        num_of_posts = 5

        for counter in range(1, (num_of_posts + 1)):
            thread_reply = 'some reply %s' % str(int(thread_num) + counter)
            forums_page_obj.post_reply(thread_loc, thread_reply)
            
        location = sel.get_location()
        p = re.compile('post-[0-9]*')
        postString = p.search(location)
        postNum = postString.group()[5:]
        # delete link of second to last post
        post_to_delete_link = "css=li#post-%s > div > div > a:nth-child(2)" % str(int(postNum) - 1)
        forums_page_obj.wait_for_element_present(post_to_delete_link)
        sel.click(post_to_delete_link)
        sel.wait_for_page_to_load(vars.ConnectionParameters.page_load_timeout)
        #confirmation dialogue for deletion
        sel.click("css=form > input[type='submit']")
        sel.wait_for_page_to_load(vars.ConnectionParameters.page_load_timeout)
        sel.open(thread_loc)
        self.failUnless(sel.is_text_present(thread_title))
Esempio n. 6
0
    def test_forum_b_goto_post_after_reply(self):
        """Check if forum redirects to post after replying."""
        sel = self.selenium
        login_page_obj = login_page.LoginPage(sel)
        forums_page_obj = forums_page.ForumsPage(sel)
        thread_reply = 'some reply ' + str(int(self.thread_num))

        user_info = sumo_test_data.SUMOtestData().getUserInfo(0)
        uname = user_info['username']
        pwd = user_info['password']
        ''' login '''
        login_page_obj.log_in(uname, pwd)
        forums_page_obj.post_reply(thread_loc, thread_reply)
        post_url = forums_page_obj.get_url_current_page()
        self.failUnless(('#post-' in post_url),
                        "Not redirecting to post (not in url)")
Esempio n. 7
0
    def test_login(self):
        """tests login & logout
        """
        sel = self.selenium
        login_page_obj = login_page.LoginPage(sel)
        support_page_obj = support_home_page.SupportHomePage(sel)

        user_info = sumo_test_data.SUMOtestData().getUserInfo(0)
        uname = user_info['username']
        pwd = user_info['password']
        ''' Login '''

        login_page_obj.log_in(uname, pwd)

        login_page_obj.go_to_login_page()
        ''' Logout '''
        login_page_obj.log_out()
        support_page_obj.is_the_current_page
    def test_forum_pagination_on_prod(self):
        """Post a new thread and reply to the thread
        Check pagination after 20 posts.
        This test is suppossed to be run only on Production site.
        It Posts in the auto-test forums which is only viewable by certain users
        Note: This test will not run locally by itself. It will only run in BFT suite.
        """
        thread_num = str(random.randint(100, 10000))
        thread_title = 'test_thread_' + thread_num
        thread_text = 'some text'
        self.selenium.stop()
        self.selenium = selenium(vars.ConnectionParameters.server,
                                 vars.ConnectionParameters.port,
                                 vars.ConnectionParameters.browser,
                                 'https://support.mozilla.com')
        self.selenium.start()
        self.timeout = vars.ConnectionParameters.page_load_timeout
        self.selenium.set_timeout(self.timeout)
        sel = self.selenium

        login_page_obj = login_page.LoginPage(sel)
        forums_page_obj = forums_page.ForumsPage(sel)

        user_info = sumo_test_data.SUMOtestData().getUserInfo(1)
        uname = user_info['username']
        pwd = user_info['password']

        login_page_obj.log_in(uname, pwd)

        # Post a new thread
        # this forum is only only viewable by certain users,
        # so posting to it on Prod is allowed.

        forums_page_obj.open(
            'https://support.mozilla.com/en-US/forums/auto-test')
        forums_page_obj.post_new_thread_first_cat(thread_title, thread_text)

        self.failUnless(sel.is_text_present(thread_text))
        ''' Logout '''
        forums_page_obj.log_out()
    def test_that_posting_question_works(self):
        """Posts a question to /questions"""
        login_po = login_page.LoginPage(self.selenium)
        questions_po = questions_page.QuestionsPage(self.selenium)
        timestamp = self.selenium.get_eval("new Date().getTime()")
        q_to_ask = "automation test question %s" % (datetime.date.today())
        q_details = "This is a test. " + timestamp

        user_info = sumo_test_data.SUMOtestData().getUserInfo(0)
        uname = user_info['username']
        pwd = user_info['password']
        ''' login '''
        login_po.log_in(uname, pwd)
        """ go to the /questions/new page and post a question
        """
        questions_po.go_to_ask_new_questions_page()
        questions_po.click_firefox_product_link()
        questions_po.click_category_problem_link()
        questions_po.type_question(q_to_ask)
        questions_po.click_provide_details_button()
        questions_po.fill_up_questions_form(q_details)

        self.failUnless(self.selenium.is_text_present(q_to_ask))
        self.failUnless(self.selenium.is_text_present(q_details))
Esempio n. 10
0
 def __init__(self):
     '''
     Constructor
     '''
     self.objTestData = sumo_test_data.SUMOtestData()
Esempio n. 11
0
 def log_in_as_non_admin(self):
     user_info = sumo_test_data.SUMOtestData().getUserInfo(
         self._non_admin_user_index)
     user_name = user_info['username']
     password = user_info['password']
     self.log_in(user_name, password)
Esempio n. 12
0
    def test_forum_a_pagination(self):
        """Post a new thread and reply to the thread
        Check pagination after 20 posts.
        """
        sel = self.selenium
        login_page_obj = login_page.LoginPage(sel)
        forums_page_obj = forums_page.ForumsPage(sel)

        user_info = sumo_test_data.SUMOtestData().getUserInfo(0)
        uname = user_info['username']
        pwd = user_info['password']
        ''' Login '''
        login_page_obj.log_in(uname, pwd)
        time.sleep(5)

        #base_url_secure = sel.get_location()[:-10]
        ''' Post a new thread '''
        forums_page_obj.go_to_forums_cat_list_page()
        forums_page_obj.click(forums_page_obj.first_cat_forum_link, True)
        forums_page_obj.post_new_thread_first_cat(self.thread_title,
                                                  self.thread_text)

        global thread_loc
        thread_loc = str(sel.get_location())
        thread_loc_arr = thread_loc.split('/')
        url1 = thread_loc_arr[len(thread_loc_arr) - 2]
        url2 = thread_loc_arr[len(thread_loc_arr) - 1]
        thread_loc = vars.ConnectionParameters.baseurl_ssl + '/en-US/forums/%s/%s' % (
            url1, url2)
        '''Post over 20 replies'''
        '''Each page takes 20 posts'''
        num_of_posts = 21

        for counter in range(1, (num_of_posts + 1)):
            thread_reply = 'some reply ' + str(int(self.thread_num) + counter)
            forums_page_obj.post_reply(thread_loc, thread_reply)
            self.failUnless(
                sel.is_text_present(thread_reply),
                "%s not present on %s" % (thread_reply, thread_loc))
            '''Once there are over 20 posts, verify pagination'''
            '''Verify for new page/previous page links '''
            if (counter > 20 and counter % 20 == 1):
                self.failUnless(
                    sel.is_element_present(forums_page_obj.pagination_link),
                    "Pagination not present at %s" % sel.get_location())
                '''If counter=41 then previous page = page 2 '''
                prev_page_num = int((counter - 1) / 20)
                prev_page_link = thread_loc
                prev_page_link += '?page=' + str(prev_page_num)
                self.failUnless(
                    sel.is_element_present('css=a[href*=' + prev_page_link +
                                           ']'),
                    "Prev page link of %s not present at %s" %
                    (prev_page_link, sel.get_location()))
                sel.click('css=a[href=' + prev_page_link + ']')
                sel.wait_for_page_to_load(
                    vars.ConnectionParameters.page_load_timeout)
                self.failUnless(
                    sel.is_element_present(forums_page_obj.next_page_link))
                next_page_num = prev_page_num + 1
                next_page_link = thread_loc
                next_page_link += '?page=' + str(next_page_num)
                self.failUnless(
                    sel.is_element_present('css=a[href=' + next_page_link +
                                           ']'), "next page link not present")
    def test_forum_pagination_on_prod(self):
        """Post a new thread and reply to the thread
        Check pagination after 20 posts.
        This test is suppossed to be run only on Production site.
        It Posts in the auto-test forums which is only viewable by certain users
        Note: This test will not run locally by itself. It will only run in BFT suite.
        """
        self.selenium.stop()
        self.selenium = selenium(vars.ConnectionParameters.server,
                                 vars.ConnectionParameters.port,
                                 vars.ConnectionParameters.browser,
                                 'https://support.mozilla.com')
        self.selenium.start()
        self.timeout = vars.ConnectionParameters.page_load_timeout
        self.selenium.set_timeout(self.timeout)
        sel = self.selenium
        #sel.open('https://support.mozilla.com')
        login_page_obj = login_page.LoginPage(sel)
        forums_page_obj = forums_page.ForumsPage(sel)

        user_info = sumo_test_data.SUMOtestData().getUserInfo(1)
        uname = user_info['username']
        pwd = user_info['password']
        ''' Login '''
        login_page_obj.log_in(uname, pwd)
        time.sleep(5)

        #base_url_secure = sel.get_location()[:-10]
        ''' Post a new thread '''
        """this forum is only only viewable by certain users,
        so posting to it on Prod is allowed.
        """
        sel.open('https://support.mozilla.com/en-US/forums/auto-test')
        forums_page_obj.post_new_thread_first_cat(self.thread_title,
                                                  self.thread_text)

        #global thread_loc
        self.thread_loc = str(sel.get_location())
        thread_loc_arr = self.thread_loc.split('/')
        url1 = thread_loc_arr[len(thread_loc_arr) - 2]
        url2 = thread_loc_arr[len(thread_loc_arr) - 1]
        thread_loc = "https://support.mozilla.com/en-US/forums/%s/%s" % (url1,
                                                                         url2)
        '''Post over 20 replies'''
        '''Each page takes 20 posts'''
        num_of_posts = 21

        for counter in range(1, (num_of_posts + 1)):
            thread_reply = 'some reply ' + str(int(self.thread_num) + counter)
            forums_page_obj.post_reply(thread_loc, thread_reply)
            self.failUnless(
                sel.is_text_present(thread_reply),
                "%s not present on %s" % (thread_reply, thread_loc))
            '''Once there are over 20 posts, verify pagination'''
            '''Verify for new page/previous page links '''
            if (counter > 20 and counter % 20 == 1):
                self.failUnless(
                    sel.is_element_present(forums_page_obj.pagination_link),
                    "Pagination not present at %s" % sel.get_location())
                '''If counter=41 then previous page = page 2 '''
                prev_page_num = int((counter - 1) / 20)
                prev_page_link = thread_loc
                prev_page_link += '?page=' + str(prev_page_num)
                self.failUnless(
                    sel.is_element_present('css=a[href*=' + prev_page_link +
                                           ']'),
                    "Prev page link of %s not present at %s" %
                    (prev_page_link, sel.get_location()))
                sel.click('css=a[href=' + prev_page_link + ']')
                sel.wait_for_page_to_load(
                    vars.ConnectionParameters.page_load_timeout)
                self.failUnless(
                    sel.is_element_present(forums_page_obj.next_page_link))
                next_page_num = prev_page_num + 1
                next_page_link = thread_loc
                next_page_link += '?page=' + str(next_page_num)
                self.failUnless(
                    sel.is_element_present('css=a[href=' + next_page_link +
                                           ']'), "next page link not present")
Esempio n. 14
0
 def get_user_name_non_admin(self):
     user_info = sumo_test_data.SUMOtestData().getUserInfo(
         self._non_admin_user_index)
     user_name = user_info['username']
     return user_name