Esempio n. 1
0
 def setUp(self):
     super(DirectoryTest, self).setUp()
     self.directory_page = DirectoryPage(self.driver)
     self.directory_page.open()
     self.auth()
     self.main_page = MainPage(self.driver)
     self.main_page.hide_app_loader()
     self.manager = self.main_page.letter_manager
Esempio n. 2
0
 def setUpClass(self):
     #self.con = DB.init_connection()
     #print('Database connected')
     #DB.delete_all_from_db(self.con)
     #print('Clear table')
     self.driver = webdriver.Chrome()
     print('Browser started')
     self.driver.maximize_window()
     self.MAIN_PAGE = MainPage(self.driver)
     self.MAIN_PAGE.open_url(self.url)
Esempio n. 3
0
    def test_should_not_sign_in_unregistered_user(self):
        # given
        main_page = MainPage(self.driver)
        main_page.dismiss_modals()

        # when
        login_page = main_page.go_to_sign_in_page()
        login_page.sign_in("*****@*****.**", "unregistered")

        # then
        assert login_page.is_not_signed_in(
            "This email address or password is incorrect")
def navigate_to_selected_webpage(context):
    context.user = random_email_generator()
    context.faker = Faker('en_US')
    context.driver.get(get_main_page_url())
    context.main_page = MainPage(context)
    context.authentication_page = AuthenticationPage(context)
    context.account_page = AccountPage(context)
Esempio n. 5
0
    def test_should_item_and_total_bag_prices_be_correct(self):
        # given
        main_page = MainPage(self.driver)
        main_page.dismiss_modals()
        result_page = main_page.search_for_phrase("Garmin forerunner")
        product_page = result_page.get_first_product_result()

        # when
        product_page.add_product_to_bag()
        bag_page = product_page.view_bag()

        # and
        bag_page.increase_product_quantity()
        bag_page.update_bag()

        # then
        assert bag_page.is_total_price_correct()
Esempio n. 6
0
    def test_edit_and_save_home_address(self):
        streetaddress = random.randint()
        MainPage(self.driver).navigate_to_contact_information()

        contact_info_page = ContactInformationPage(self.driver)
        contact_info_page.wait_for_load()
        contact_info_page.edit_home_address()
        contact_info_page.home_streetaddress().set_value("123 Anywhere")

        time.sleep(5)
class SearchMainPage(BaseTest, unittest.TestCase):
    def setUp(self):
        super(SearchMainPage, self).setUp()
        self.page = MainPage(self.driver, root_uri=s['root_url'])
        self.page.get(MainPage._page_url)

    def testsearchMain(self):
        search_term = "lose weight"
        self.page._search_query_locator = search_term
        self.page._search_submit.click()

        # verify we are on Search Page by checking page title
        self.assertIn(SearchPage._page_title, self.page.w.title)

        # verify that there are any search results (more than 0)
        results = self.page.w.find_elements_by_class_name(
            SearchPage._search_results_selenium)
        self.assertGreater(len(results), 0)

    def tearDown(self):
        #self.driver.quit()
        super(SearchMainPage, self).tearDown()
Esempio n. 8
0
 def test_guest_can_go_to_login_page(self, browser):
     link = "http://selenium1py.pythonanywhere.com/"
     page = MainPage(browser, link)
     page.open()
     page.go_to_login_page()
     login_page = LoginPage(browser, browser.current_url)
     print()
     login_page.should_be_login_page()
Esempio n. 9
0
    def test_successful_login(self):
        """
        Tests a successful login attempt
        """

        #Load the logon page.
        login_page = LogonPage(self.driver)
        login_page.wait_for_load()

        #Pass in a bogus username and password
        login_page.username().set_value(Constants.testusername)
        login_page.password().set_value(Constants.testpassword)

        #Attempt to login
        login_page.click_submit_button()

        #Verify the main page is loaded and the welcome message
        main_page = MainPage(self.driver)
        main_page.wait_for_load()

        welcome_message = main_page.get_welcome_message()

        assert_equal(welcome_message, "Welcome, Art Venere")
    def test_successful_login(self):
        """
        Tests a successful login attempt
        """

        #Load the logon page.
        login_page = LogonPage(self.driver)
        login_page.wait_for_load()

        #Pass in a bogus username and password
        login_page.username().set_value(Constants.testusername)
        login_page.password().set_value(Constants.testpassword)

        #Attempt to login
        login_page.click_submit_button()

        #Verify the main page is loaded and the welcome message
        main_page = MainPage(self.driver)
        main_page.wait_for_load()

        welcome_message = main_page.get_welcome_message()

        assert_equal(welcome_message, "Welcome, Art Venere")
class SearchMainPage(BaseTest, unittest.TestCase):

    def setUp(self):
        super(SearchMainPage, self).setUp()
        self.page = MainPage(self.driver, root_uri=s['root_url'])
        self.page.get(MainPage._page_url)
        
       
    def testsearchMain(self):
        search_term = "lose weight"
        self.page._search_query_locator = search_term
        self.page._search_submit.click()

        # verify we are on Search Page by checking page title
        self.assertIn(SearchPage._page_title, self.page.w.title)

        # verify that there are any search results (more than 0)
        results = self.page.w.find_elements_by_class_name(SearchPage._search_results_selenium)
        self.assertGreater(len(results), 0)


    def tearDown(self):
        #self.driver.quit()
        super(SearchMainPage, self).tearDown()
Esempio n. 12
0
 def setup_method(self, method):
     self.logging_util = LoggingUtil()
     self.logging_util.setup_logging()
     self.logger = logging.getLogger()
     desired_caps = {
         'platformName': 'Android',
         # 'deviceName': '127.0.0.1:5554',  # 手机设备名称,通过adb devices查看
         'deviceName': '127.0.0.1:62001',  # 手机设备名称,通过adb devices查看
         'platformVersion': '5.1.1',  # android系统的版本号
         'appPackage': 'com.aiosign.dzonesign',  # apk包名
         # apk的launcherActivity
         'appActivity': 'com.aiosign.dzonesign.view.AppStartActivity',
     }
     self.logger.info('启动app')
     try:
         self.driver = webdriver.Remote('http://localhost:4723/wd/hub',
                                        desired_caps)
         time.sleep(3)
         self.base_page = BasePage(self.driver)
         self.welcome_page = WelcomePage(self.base_page)
         self.login_page = LoginPage(self.base_page)
         self.main_page = MainPage(self.base_page)
     except Exception:
         BasePage.get_screen('screen_shot/')
Esempio n. 13
0
    def test_login_valid(self, login, password):
        main_page = MainPage(self.driver)
        main_page.open()
        main_page.login()

        login_page = LoginPage(self.driver)
        login_page.wait_for_page_to_load()
        login_page.set_email(login)
        login_page.set_password(password)
        login_page.login()
        assert login_page.error_message_visible

        dashboard_page = DashboardPage(self.driver)
        dashboard_page.wait_for_page_to_load()
        assert dashboard_page.dropdown_visible
Esempio n. 14
0
    def test_scenario_2(self):
        
        city = 'Рига'
        main_page = MainPage(self.driver)
        assert main_page.is_title_matches(), "Title is not matches!"
        main_page.choose_city(city)
        main_page.click_check_prices_button()
        
        search_page = SearchHotelPage(self.driver)
        assert search_page.is_page_opened(city), "Page title is not matches!"
        assert search_page.check_pices_presence() is False, "Prices are shown!"
        assert search_page.check_calendar_presence(), "Calendar is not opened!"
        
        search_page.close_calendar()
        assert search_page.check_calendar_presence() is False, "Calendar is not closed!"

        search_page.click_show_prices_button()
        assert search_page.check_calendar_presence(), "Calendar is not opened!."

        search_page.choose_avaliable_date()
        search_page.click_submit_button()

        assert search_page.check_pices_presence(), "Prices are not shown!"
        assert search_page.check_prices_presence_in_description(), "Prices counter is not equal to hotel articles counter!"
Esempio n. 15
0
    def test_checkLive(self):

        MainPage._verify_page(self)
        MainPage._login(self)
        MainPage._check_if_ticket(self)
        MainPage._get_timestamp(self)
 def setUp(self):
     super(SearchMainPage, self).setUp()
     self.page = MainPage(self.driver, root_uri=s['root_url'])
     self.page.get(MainPage._page_url)
    def test_input(self):
        # Enable flash
        BestTestCase.navigate_to_page(self, TT_Constants["Flash_URL"])
        MainPage._allow_flash(self)

        # Open file
        f = open("../word.txt", "r")
        word = f.read()

        # Go to Chinese input website
        BestTestCase.navigate_to_page(self, TT_Constants["Base_URL"])
        input_word = word
        input_ls = MainPage._handle_input(self, input_word)

        for i in range(len(input_ls)):
            MainPage._input_new_word(self, input_ls[i])
            MainPage._customize_click(self)
            MainPage._input_line_no(self)

            #TODO: Download files automatically (Flash content)
            # filename = "screenshot/image_" + BasePage.timestamp(self) + ".png"
            # BasePage.screenshot(self, filename)
            # MainPage._save_to_pdf(self)

            # # Go back to previous main page TODO:判斷是否有page2
            BasePage.goback_to_previous_window(self)

            # Clear inputted words
            MainPage._clear_inputted_words(self)

        # Download Manually
        time.sleep(2000)
Esempio n. 18
0
def authorise(remote_chrome):
    auth_page = MainPage(remote_chrome)
    auth_page.go_to_site()
    auth_page.authorise()
    return  authorise
def test_guest_should_see_login_link(browser):
    link = "http://selenium1py.pythonanywhere.com/"
    page = MainPage(browser, link)
    page.open()
    page.should_be_login_link()
Esempio n. 20
0
def test_guest_can_go_to_login_page(browser):
    link = "http://selenium1py.pythonanywhere.com/"
    page = MainPage(browser, link)
    page.open()
    page.go_to_login_page()
Esempio n. 21
0
class LoginTest(BasicTest):
    def setUp(self):
        super(LoginTest, self).setUp()
        self.login_page = LoginPage(self.driver)
        self.login_page.open()
        self.main_page = MainPage(self.driver)

    def test_correct_login(self):
        MAIL_URL = self.MAIL_URL + '/'
        self.login_page.sign_in(self.login, self.password)
        self.login_page.wait_redirect(MAIL_URL)
        self.assertEqual(self.driver.current_url.split('?')[0], MAIL_URL)

    def test_wrong_password(self):
        WRONG_PASSWORD = '******'
        self.login_page.sign_in(self.login, WRONG_PASSWORD)
        test_validation = self.login_page.get_validation_message()
        EXPECTED_VALIDATION_1 = 'Неверный пароль, попробуйте ещё раз'
        EXPECTED_VALIDATION_2 = 'Incorrect password. Try again'
        self.assertIn(test_validation,
                      [EXPECTED_VALIDATION_1, EXPECTED_VALIDATION_2])

    def test_yandex_login(self):
        TEST_LOGIN = '******'
        PASSWORD_YANDEX_URL = 'https://passport.yandex.ru/auth'
        self.login_page.enter_login(TEST_LOGIN)
        self.login_page.click_continue()
        self.login_page.wait_redirect(PASSWORD_YANDEX_URL)
        self.assertEqual(
            self.driver.current_url.split('?')[0], PASSWORD_YANDEX_URL)

    def test_gmail_login(self):
        TEST_LOGIN = '******'
        GOOGLE_ACCOUNT_URL = 'https://accounts.google.com/signin/oauth/identifier'
        self.login_page.enter_login(TEST_LOGIN)
        self.login_page.click_continue()
        self.login_page.wait_redirect(GOOGLE_ACCOUNT_URL)
        self.assertEqual(
            self.driver.current_url.split('?')[0], GOOGLE_ACCOUNT_URL)

    def test_yahoo_login(self):
        TEST_LOGIN = '******'
        YAHOO_ACCOUNT_URL = 'https://login.yahoo.com/'
        self.login_page.enter_login(TEST_LOGIN)
        self.login_page.click_continue()
        self.login_page.wait_redirect(YAHOO_ACCOUNT_URL)
        self.assertEqual(
            self.driver.current_url.split('?')[0], YAHOO_ACCOUNT_URL)

    def test_rambler_login(self):
        TEST_LOGIN = '******'
        self.login_page.sign_in(TEST_LOGIN, self.password)
        err = self.login_page.get_protocol_err()
        EXPECTED_ERR_1 = 'Вы можете добавить любой почтовый ящик, поддерживающий сбор почты по протоколу POP/IMAP. Если логин введен неверно, авторизуйтесь заново.'
        EXPECTED_ERR_2 = 'You can add any mailbox that supports POP/IMAP. If your credentials were entered incorrectly, sign in again.'
        self.assertIn(err, [EXPECTED_ERR_1, EXPECTED_ERR_2])

    def test_custom_login(self):
        CUSTOM_LOGIN = '******'
        CUSTOM_PASSWORD = '******'
        self.login_page.sign_in(CUSTOM_LOGIN, CUSTOM_PASSWORD)
        err = self.login_page.get_domain_err()
        POSSIBLE_ERRORS = [
            'Try again later.',
            'Повторите попытку через некоторое время.',
            'Произошла ошибка! Пожалуйста, повторите попытку через некоторое время или введите имя и пароль другого аккаунта.',
            'You can add any mailbox that supports POP/IMAP. If your credentials were entered incorrectly, sign in again.',
        ]
        self.assertIn(err, POSSIBLE_ERRORS)

    def test_empty_password(self):
        EMPTY_PASSWORD = ''
        self.login_page.sign_in(self.login, EMPTY_PASSWORD)
        test_validation = self.login_page.get_validation_message()
        EXPECTED_VALIDATION_1 = 'Поле «Пароль» должно быть заполнено'
        EXPECTED_VALIDATION_2 = 'The "Password" field is required'
        self.assertIn(test_validation,
                      [EXPECTED_VALIDATION_1, EXPECTED_VALIDATION_2])

    def test_signout(self):
        self.login_page.sign_in(self.login, self.password)
        self.login_page.wait_redirect(self.MAIL_URL)
        self.main_page.click_signout()
        self.main_page.wait_redirect(self.MAIN_PAGE_URL)
        self.assertEqual(
            self.driver.current_url.split('?')[0], self.MAIN_PAGE_URL)
Esempio n. 22
0
 def setUp(self):
     super(LoginTest, self).setUp()
     self.login_page = LoginPage(self.driver)
     self.login_page.open()
     self.main_page = MainPage(self.driver)
Esempio n. 23
0
 def setUp(self):
     super(MainTest, self).setUp()
     self.main_page = MainPage(self.driver)
     self.main_page.open()
     self.auth()
     self.main_page.hide_app_loader()
Esempio n. 24
0
 def __init(self, driver):
     MainPage.__init__(self, driver)
 def __init(self, driver):
     MainPage.__init__(self, driver)
 def setUp(self):
     super(SearchMainPage, self).setUp()
     self.page = MainPage(self.driver, root_uri=s['root_url'])
     self.page.get(MainPage._page_url)
Esempio n. 27
0
class MainPageTests(unittest.TestCase):
    maxDiff = None
    driver: webdriver
    driver = None
    con = None
    MAIN_PAGE = None
    url = 'http://tereshkova.test.kavichki.com'

    @classmethod
    def setUpClass(self):
        #self.con = DB.init_connection()
        #print('Database connected')
        #DB.delete_all_from_db(self.con)
        #print('Clear table')
        self.driver = webdriver.Chrome()
        print('Browser started')
        self.driver.maximize_window()
        self.MAIN_PAGE = MainPage(self.driver)
        self.MAIN_PAGE.open_url(self.url)

    @classmethod
    def tearDownClass(self):
        self.driver.close()
        print('Browser closed')
        #DB.close_connection(self.con)
        #print('Database disconnected')

    def test_add_new_row(self):  # тест корректен, ошибка в функционале сайта
        # test data set
        goods = 'Ангельская пыль'
        count = '5'
        cost = '20000'
        action = 'Удалить'
        added_row_expected = (goods, count, cost, action)
        # test
        self.fill_form(cost, count, goods)
        self.MAIN_PAGE.find_element(*MainPageLocators.ADD_BUTTON).click()
        added_row_actual = self.get_table_data()[-1]
        asserts().assertTupleEqual(
            added_row_expected, added_row_actual,
            'Error: expected and actual row is not equals')

    def test_delete_last_added_row(
            self):  # тест корректен, ошибка в функционале сайта
        # precondition
        goods = 'Крошки Зевса'
        count = '3'
        cost = '5500'
        action = 'Удалить'
        self.fill_form(cost, count, goods)
        self.MAIN_PAGE.find_element(*MainPageLocators.ADD_BUTTON).click()
        # test
        absent_row = self.get_table_data()[-1]
        current_element = self.MAIN_PAGE.find_elements(
            *MainPageLocators.DELETE_LINK)[-1]
        current_element.click()
        rows = self.get_table_data()
        asserts().assertNotIn(absent_row, rows,
                              'Error: deleted row is present in table')

    def test_delete_first_row(
            self):  # тест корректен, ошибка в функционале сайта
        # test
        absent_row = self.get_table_data()[0]
        current_element = self.MAIN_PAGE.find_elements(
            *MainPageLocators.DELETE_LINK)[0]
        current_element.click()
        rows = self.get_table_data()
        asserts().assertNotIn(absent_row, rows,
                              'Error: deleted row is present in table')

    def test_reset_form(self):  # тест корректен, ошибка в функционале сайта
        expected = {'name': '', 'count': '', 'cost': ''}
        params = ['100500', '78', 'hello']
        self.fill_form(*params)
        self.MAIN_PAGE.find_element(*MainPageLocators.RESET_LINK).click()
        name = self.MAIN_PAGE.find_element(
            *MainPageLocators.NAME_EDIT).get_attribute('value')
        count = self.MAIN_PAGE.find_element(
            *MainPageLocators.COUNT_EDIT).get_attribute('value')
        cost = self.MAIN_PAGE.find_element(
            *MainPageLocators.COST_EDIT).get_attribute('value')
        actual = {'name': name, 'count': count, 'cost': cost}
        asserts().assertDictEqual(
            expected, actual, 'Error: name, count, cost edits is not empty')

    def compare_tables_data(self):
        # copy all records in DB
        rows = self.get_table_data()
        DB.copy_all_in_table(self.con, rows)
        # add new rows in table on GUI
        attempts = 3
        i = 1
        while i <= attempts:
            goods = 'bla-bla-bla ' + str(i)
            count = '5' + str(i)
            cost = '20' + str(i)
            self.fill_form(cost, count, goods)
            self.MAIN_PAGE.find_element(*MainPageLocators.ADD_BUTTON).click()
            i = i + 1
        rows_db = DB.select_all_from_db(self.con)
        rows_table = self.get_table_data()
        asserts().assertGreater(
            len(rows_table), len(rows_db),
            'Error: count rows in DB > count rows in table')
        set_db = set(rows_db)
        set_table = set(rows_table)
        set_total = set_table - set_db
        print('\nDifferent rows:')
        for row in set_total:
            print(row)

    def fill_form(self, cost, count, goods):
        self.MAIN_PAGE.find_element(*MainPageLocators.ADD_LINK).click()
        self.MAIN_PAGE.find_element(*MainPageLocators.NAME_EDIT).clear()
        self.MAIN_PAGE.find_element(
            *MainPageLocators.NAME_EDIT).send_keys(goods)
        self.MAIN_PAGE.find_element(*MainPageLocators.COUNT_EDIT).clear()
        self.MAIN_PAGE.find_element(
            *MainPageLocators.COUNT_EDIT).send_keys(count)
        self.MAIN_PAGE.find_element(*MainPageLocators.COST_EDIT).clear()
        self.MAIN_PAGE.find_element(
            *MainPageLocators.COST_EDIT).send_keys(cost)

    def get_table_data(self):
        table_data_list = []
        rows = self.MAIN_PAGE.find_elements(*MainPageLocators.TR)
        for row in rows:
            cols = row.find_elements(*MainPageLocators.TD)
            goods = cols[0].text
            count = cols[1].text
            cost = cols[2].text
            action = cols[3].text
            table_data_list.append((goods, count, cost, action))
        return table_data_list
Esempio n. 28
0
class Test_login(object):
    '''类注释
    详细描述

    Attributes:
        属性说明
    '''
    def setup_method(self, method):
        self.logging_util = LoggingUtil()
        self.logging_util.setup_logging()
        self.logger = logging.getLogger()
        desired_caps = {
            'platformName': 'Android',
            # 'deviceName': '127.0.0.1:5554',  # 手机设备名称,通过adb devices查看
            'deviceName': '127.0.0.1:62001',  # 手机设备名称,通过adb devices查看
            'platformVersion': '5.1.1',  # android系统的版本号
            'appPackage': 'com.aiosign.dzonesign',  # apk包名
            # apk的launcherActivity
            'appActivity': 'com.aiosign.dzonesign.view.AppStartActivity',
        }
        self.logger.info('启动app')
        try:
            self.driver = webdriver.Remote('http://*****:*****@allure.story('登录-用户不存在')
    def test_login_1(self):
        self.logger.info('开始测试test_login_1==================================')
        self.base_page.swipe_to_left()
        self.base_page.swipe_to_left()
        self.welcome_page.click_tiyan_button()
        self.welcome_page.click_login_button()
        self.login_page.input_username('15628811988')
        self.login_page.input_passwd('12345678')
        self.login_page.click_signin_button()
        res = self.base_page.is_toast_exist('用户不存在')
        assert res
        self.logger.info('测试结束=====================================')

    @allure.story('登录-账号或密码错误')
    def test_login_2(self):
        self.base_page.swipe_to_left()
        self.base_page.swipe_to_left()
        self.welcome_page.click_tiyan_button()
        self.welcome_page.click_login_button()
        self.login_page.input_username('15628811989')
        self.login_page.input_passwd('123456789')
        self.login_page.click_signin_button()
        res = self.base_page.is_toast_exist('账号或密码错误')
        assert res

    @allure.story('登录-正常')
    def test_right(self):
        self.logger.info('开始测试test_right=====================================')
        self.base_page.swipe_to_left()
        self.base_page.swipe_to_left()
        self.welcome_page.click_tiyan_button()
        self.welcome_page.click_login_button()
        self.login_page.input_username('15628811989')
        self.login_page.input_passwd('12345678')
        self.login_page.click_signin_button()
        res = self.main_page.is_personal_center_button_exist()
        assert res
        # self.main_page.click_personal_center_button()
        # self.logger.info('测试完成')

    @allure.story('登录-未输入密码')
    def test_login_3(self):
        self.base_page.swipe_to_left()
        self.base_page.swipe_to_left()
        self.welcome_page.click_tiyan_button()
        self.welcome_page.click_login_button()
        self.login_page.input_username('15628811989')
        # self.login_page.input_passwd('')
        self.login_page.click_signin_button()
        res = self.base_page.is_toast_exist('请输入密码!')
        assert res

    @allure.story('登录-账号格式不正确')
    def test_login_4(self):
        self.base_page.swipe_to_left()
        self.base_page.swipe_to_left()
        self.welcome_page.click_tiyan_button()
        self.welcome_page.click_login_button()
        self.login_page.input_username('156288119')
        self.login_page.input_passwd('12345678')
        self.login_page.click_signin_button()
        res = self.base_page.is_toast_exist('账号格式不正确(邮箱、信用代码、手机)')
        assert res

    @allure.story('登录-未输入账号')
    def test_login_5(self):
        self.base_page.swipe_to_left()
        self.base_page.swipe_to_left()
        self.welcome_page.click_tiyan_button()
        self.welcome_page.click_login_button()
        self.login_page.input_passwd('12345678')
        self.login_page.click_signin_button()
        res = self.base_page.is_toast_exist('请输入账号!')
        assert res
Esempio n. 29
0
    def test_scenario_1(self):

        main_page = MainPage(self.driver)
        assert main_page.is_title_matches(), "Title is not matches!"

        assert main_page.check_guest_field_presence() is False, "Guest field is opend!"
        main_page.click_on_guest_field()
        assert main_page.check_guest_field_presence(), "Guest field is not opend!"

        main_page.add_children_button(3)
        assert main_page.check_children_counter(), "Counters are not matching!"

        main_page.remove_child_buton(2)
        assert main_page.check_children_counter(), "Counters are not matching!"
Esempio n. 30
0
class MainTest(BasicTest):
    def setUp(self):
        super(MainTest, self).setUp()
        self.main_page = MainPage(self.driver)
        self.main_page.open()
        self.auth()
        self.main_page.hide_app_loader()

    def test_receive_new_letter(self):
        self.subject = self.add_random_number('Subject_receive_new_letter ')
        TEXT = 'Text_receive_new_letter'
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter(self.login, self.subject, TEXT)
        letter_manager.letter_selector.find_letter_subject_real(self.subject)

    def test_receive_new_letter_from_another_account(self):
        self.subject = self.add_random_number(
            'Subj_receive_from_another_account ')
        TEXT = 'Txt_receive_from_another_account'

        receiver = User(self.login2, self.password2)
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter(receiver.login, self.subject, TEXT)
        self.main_page.relogin(receiver.login, receiver.password)

        letter_manager.letter_selector.find_letter_subject_real(self.subject)

    def test_reading_letter(self):
        self.subject = self.add_random_number('Subject_reading_letter ')
        TEXT = 'Text_reading_letter'
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter(self.login, self.subject, TEXT)
        letter_manager.letter_selector.set_letter_read_status(
            self.subject, True)
        self.assertTrue(
            letter_manager.letter_selector.get_letter_read_status(
                self.subject))

    def test_remove_letter(self):
        self.subject = self.add_random_number('Subject_remove_letter ')
        TEXT = 'Text_remove_letter'
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter(self.login, self.subject, TEXT)
        letter_manager.remove_letter(self.subject)

        self.main_page.navigation_manager.go_to_trash()
        letter_manager.letter_selector.find_letter_subject_real(self.subject)
        # tearDown shouldn't remove anything!
        self.subject = ''

    def test_restore_letter(self):
        self.subject = self.add_random_number('Subject_restore_letter ')
        TEXT = 'Text_restore_letter'
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter(self.login, self.subject, TEXT)
        letter_manager.remove_letter(self.subject)

        self.main_page.navigation_manager.go_to_trash()
        letter_manager.restore_letter(self.subject)
        # Go back (to check for a letter in the inbox folder)
        self.main_page.navigation_manager.go_to_inbox()

        letter_manager.letter_selector.find_letter_subject_real(self.subject)

    def test_check_sent_new_letter(self):
        self.subject = self.add_random_number('Subject_check_sent_new_letter ')
        TEXT = 'Text_check_sent_new_letter'
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter(self.login, self.subject, TEXT)
        self.main_page.navigation_manager.go_to_sent_letters_folder()
        letter_manager.letter_selector.find_letter_subject_real(self.subject)

    def test_open_letter(self):
        self.subject = self.add_random_number('Subject_opened_letter ')
        TEXT = self.add_random_number('Text_opened_letter_')
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter(self.login, self.subject, TEXT)
        letter_manager.letter_selector.open_letter(self.subject)
        actual_subject = self.main_page.letter_manager.letter_selector.get_opened_letter_subject(
        )
        actual_text = self.main_page.letter_manager.letter_selector.get_opened_letter_text(
        )
        self.assertEqual(self.subject, actual_subject)
        self.assertEqual(TEXT, actual_text)

    def test_reply_letter(self):
        self.subject = self.add_random_number('Subject_reply_letter ')
        TEXT = 'Text_reply_letter'
        replied_text = self.add_random_number('Replied text ')

        first_user = User(self.login, self.password)
        receiver = User(self.login2, self.password2)
        letter_manager = self.main_page.letter_manager

        letter_manager.write_letter(receiver.login, self.subject, TEXT)

        self.main_page.relogin(receiver.login, receiver.password)
        letter_manager.reply_letter(self.subject, replied_text)

        self.main_page.relogin(first_user.login, first_user.password)
        letter_manager.letter_selector.open_letter(self.subject)
        actual_replied_text = self.main_page.letter_manager.letter_selector.get_replied_letter_text(
        )
        self.assertEqual(replied_text, actual_replied_text)

        self.main_page.navigation_manager.go_to_inbox()
        self.main_page.letter_manager.remove_letter(self.subject)

        self.main_page.relogin(receiver.login, receiver.password)

    def test_write_many_receivers(self):
        self.subject = self.add_random_number('Subject_write_many_receivers ')
        TEXT = 'Text_write_many_receivers'
        receivers = [
            User(self.login, self.password),
            User(self.login2, self.password2),
        ]
        receivers_emails = [receiver.login for receiver in receivers]
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter_many_receivers(receivers_emails,
                                                   self.subject, TEXT)
        for receiver in receivers:
            self.main_page.relogin(receiver.login, receiver.password)
            letter_manager.letter_selector.find_letter_subject_real(
                self.subject)
            # For the last receiver we use tearDown
            if receiver != receivers[-1]:
                self.main_page.letter_manager.remove_letter(self.subject)

    def test_bold_letter(self):
        self.subject = self.add_random_number('Subject_bold_letter ')
        TEXT = self.add_random_number('Text_bold_letter_')
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter_without_sending(self.login, self.subject,
                                                    TEXT)
        letter_manager.letter_writer.set_bold_text()
        letter_manager.send_letter()
        letter_manager.letter_selector.open_letter(self.subject)

        bold_element = letter_manager.letter_selector.get_bold()
        self.assertEqual(TEXT, bold_element.text)

    def test_font_title1_letter(self):
        self.subject = self.add_random_number(
            'Subject_font_title1_letter_letter_')
        TEXT = self.add_random_number('font title1 letter ')
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter_without_sending(self.login, self.subject,
                                                    TEXT)
        letter_manager.letter_writer.set_font_text_title1()

        letter_manager.send_letter()
        letter_manager.letter_selector.open_letter(self.subject)
        element = letter_manager.letter_selector.get_font_text_title1()
        self.assertEqual(TEXT, element.text)

    def test_alignment_text_center(self):
        self.subject = self.add_random_number('Subject_alignment_text_center_')
        TEXT = self.add_random_number('alignment_text_center_')
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter_without_sending(self.login, self.subject,
                                                    TEXT)
        letter_manager.letter_writer.set_alignment_text_center()

        letter_manager.send_letter()
        letter_manager.letter_selector.open_letter(self.subject)
        element = letter_manager.letter_selector.get_alignment_text_center()
        self.assertEqual(TEXT, element.text)

    def test_indent_text_plus(self):
        self.subject = self.add_random_number('Subject_alignment_text_center_')
        TEXT = self.add_random_number('alignment_text_indent_text_plus_')
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter_without_sending(self.login, self.subject,
                                                    TEXT)
        letter_manager.letter_writer.set_indent_text_plus()

        letter_manager.send_letter()
        letter_manager.letter_selector.open_letter(self.subject)
        element = letter_manager.letter_selector.get_indent_text()
        self.assertEqual(TEXT, element.text)

    def test_indent_text_minus(self):
        self.subject = self.add_random_number(
            'Subject_alignment_indent_text_minus_')
        TEXT = self.add_random_number('alignment_text_indent_text_minus_')
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter_without_sending(self.login, self.subject,
                                                    TEXT)
        letter_manager.letter_writer.set_indent_text_minus()

        letter_manager.send_letter()
        letter_manager.letter_selector.open_letter(self.subject)
        element = letter_manager.letter_selector.get_indent_text()
        self.assertEqual(TEXT, element.text)

    def test_italic_letter(self):
        self.subject = self.add_random_number('Subject_italic_letter_')
        TEXT = self.add_random_number('Text_italic_letter_')
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter_without_sending(self.login, self.subject,
                                                    TEXT)
        letter_manager.letter_writer.set_italic_text()
        letter_manager.send_letter()
        letter_manager.letter_selector.open_letter(self.subject)

        italic_element = letter_manager.letter_selector.get_italic()
        self.assertEqual(TEXT, italic_element.text)

    def test_underline_letter(self):
        self.subject = self.add_random_number('Subject_underline_letter_')
        TEXT = self.add_random_number('Text_underline_letter_')
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter_without_sending(self.login, self.subject,
                                                    TEXT)
        letter_manager.letter_writer.set_underline_text()
        letter_manager.send_letter()
        letter_manager.letter_selector.open_letter(self.subject)

        underline_element = letter_manager.letter_selector.get_underline()
        self.assertEqual(TEXT, underline_element.text)

    def test_strike_through_letter(self):
        self.subject = self.add_random_number('Subject_strike_through_letter_')
        TEXT = self.add_random_number('Text_strike_through_letter_')
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter_without_sending(self.login, self.subject,
                                                    TEXT)
        letter_manager.letter_writer.set_strike_through_text()
        letter_manager.send_letter()
        letter_manager.letter_selector.open_letter(self.subject)

        strike_through_element = letter_manager.letter_selector.get_strike_through(
        )
        self.assertEqual(TEXT, strike_through_element.text)

    def test_text_color(self):
        self.subject = self.add_random_number('Subject_text_color_')
        TEXT = self.add_random_number('Text_color_')
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter_without_sending(self.login, self.subject,
                                                    TEXT)
        letter_manager.letter_writer.set_text_color_purple()
        letter_manager.send_letter()
        letter_manager.letter_selector.open_letter(self.subject)
        element = letter_manager.letter_selector.get_text_color_purple()
        self.assertEqual(TEXT, element.text)
        STYLE = 'color: rgb(231, 0, 145);'
        self.assertEqual(
            STYLE,
            element.get_attribute('style').encode('utf-8', errors='ignore'))

    def test_background_color(self):
        self.subject = self.add_random_number('Subject_background_color_')
        TEXT = self.add_random_number('Background_color_')
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter_without_sending(self.login, self.subject,
                                                    TEXT)
        letter_manager.letter_writer.set_background_color_blue()
        letter_manager.send_letter()
        letter_manager.letter_selector.open_letter(self.subject)
        element = letter_manager.letter_selector.get_background_color_blue()
        self.assertEqual(TEXT, element.text)
        STYLE = 'background-color: rgb(110, 228, 254);'
        self.assertEqual(
            STYLE,
            element.get_attribute('style').encode('utf-8', errors='ignore'))

    def test_back_formating(self):
        self.subject = self.add_random_number('Subject preview letter ')
        TEXT = self.add_random_number('Teeeeext_')
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter_without_sending(self.login, self.subject,
                                                    TEXT)
        letter_manager.letter_writer.set_bold_text()

        bold_text = letter_manager.letter_selector.get_bold_text()
        self.assertEqual(TEXT, bold_text)

        letter_manager.letter_writer.click_preview_button()
        not_bold_text = letter_manager.letter_selector.get_not_bold_text()
        self.assertEqual(TEXT, not_bold_text)
        self.subject = ''

    def test_clear_formating(self):
        self.subject = self.add_random_number('Subject letter ')
        TEXT = self.add_random_number('All_kind_formating_')
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter_without_sending(self.login, self.subject,
                                                    TEXT)
        letter_manager.letter_writer.set_italic_text()
        letter_manager.letter_writer.set_underline_text()
        letter_manager.letter_writer.set_bold_text()
        letter_manager.letter_writer.set_strike_through_text()

        letter_manager.letter_writer.click_clear_all_button()
        unformating_text = letter_manager.letter_selector.get_unformating_text(
        )
        self.assertEqual(TEXT, unformating_text)
        self.subject = ''

    def test_insert_link(self):
        self.subject = self.add_random_number('Hello ')
        TEXT = self.add_random_number(
            'Welcome to the 4th semester of Tehnopark MailRu ') + '\n'
        letter_manager = self.main_page.letter_manager
        letter_manager.write_letter_without_sending(self.login, self.subject,
                                                    TEXT)
        letter_manager.letter_writer.click_link_button()
        txt_link = self.main_page.letter_manager.letter_writer.text_link
        link = self.main_page.letter_manager.letter_writer.link
        letter_manager.letter_writer.enter_link(link)
        letter_manager.letter_writer.enter_text_link(txt_link)
        letter_manager.letter_writer.click_confirm_link()

        actual_text = letter_manager.letter_selector.get_link_text()
        self.assertEqual(txt_link, actual_text)
        self.subject = ''

    def tearDown(self):
        if self.subject != '':
            if 'restore' not in self.subject:
                self.main_page.navigation_manager.go_to_inbox()
            self.main_page.letter_manager.remove_letter(self.subject)
        super(MainTest, self).tearDown()
Esempio n. 31
0
class DirectoryTest(BasicTest):
    def setUp(self):
        super(DirectoryTest, self).setUp()
        self.directory_page = DirectoryPage(self.driver)
        self.directory_page.open()
        self.auth()
        self.main_page = MainPage(self.driver)
        self.main_page.hide_app_loader()
        self.manager = self.main_page.letter_manager

    def test_move_to_archive(self):
        self.letter_subject = self.add_random_number('Mail for archive ')
        LETTER_TEXT = 'Lorem text for archive'
        self.manager.write_letter(config.DEFAULT_MAIL, self.letter_subject, LETTER_TEXT)
        self.manager.letter_selector.select_letter(self.letter_subject)
        self.directory_page.move_to_archive()
        self.directory_page.click_nav_archive_button()

        letter_selector = LetterSelector(self.driver)
        letter_selector.find_letter_subject_real(self.letter_subject)
        

    def test_move_to_inbox_from_archive(self):
        self.letter_subject = self.add_random_number('$$$ Archive ')
        LETTER_TEXT = 'Lorem text for archive'
        self.manager.write_letter(config.DEFAULT_MAIL, self.letter_subject, LETTER_TEXT)
        self.manager.letter_selector.select_letter(self.letter_subject)
        self.directory_page.move_to_archive()
        self.directory_page.click_nav_archive_button()
        self.manager.restore_letter(self.letter_subject)

        navigation_manager = NavigationManager(self.driver)
        navigation_manager.go_to_inbox()

        letter_selector = LetterSelector(self.driver)
        letter_selector.find_letter_subject_real(self.letter_subject)

    def test_set_important_letter(self):
        self.letter_subject = self.add_random_number('The IMPORTANT letter ')
        LETTER_TEXT = 'Lorem text lorem lorem lorem'
        self.manager.write_letter(config.DEFAULT_MAIL, self.letter_subject, LETTER_TEXT)
        self.directory_page.set_check_flag()
        self.assertTrue(self.directory_page.get_important_status())

    def test_unset_important_letter(self):
        self.letter_subject = self.add_random_number('The UNimportant letter ')
        LETTER_TEXT = 'Lorem text lorem lorem lorem'
        self.manager.write_letter(config.DEFAULT_MAIL, self.letter_subject, LETTER_TEXT)
        self.directory_page.set_check_flag()
        self.directory_page.unset_check_flag()
        self.assertFalse(self.directory_page.get_important_status())

    def test_move_to_social(self):
        self.letter_subject = self.add_random_number('The SOCIAL letter ')
        LETTER_TEXT = 'Lorem text lorem lorem lorem'
        self.manager.write_letter(config.DEFAULT_MAIL, self.letter_subject, LETTER_TEXT)
        self.manager.letter_selector.select_letter(self.letter_subject)

        self.directory_page.move_to_social()
        self.directory_page.go_to_social()

        letter_selector = LetterSelector(self.driver)
        letter_selector.find_letter_subject_real(self.letter_subject)

    def test_move_to_inbox_from_social(self):
        self.letter_subject = self.add_random_number('not SOCIAL letter ')
        LETTER_TEXT = 'Lorem text for archive'
        self.manager.write_letter(config.DEFAULT_MAIL, self.letter_subject, LETTER_TEXT)
        self.manager.letter_selector.select_letter(self.letter_subject)

        self.directory_page.move_to_social()
        self.directory_page.go_to_social()
        self.manager.restore_letter(self.letter_subject)

        navigation_manager = NavigationManager(self.driver)
        navigation_manager.go_to_inbox()
        letter_selector = LetterSelector(self.driver)

        letter_selector.find_letter_subject_real(self.letter_subject)

    def test_move_to_newsletters(self):
        self.letter_subject = self.add_random_number('The NewsLetter letter ')
        LETTER_TEXT = 'Lorem text lorem lorem lorem'
        self.manager.write_letter(config.DEFAULT_MAIL, self.letter_subject, LETTER_TEXT)
        self.manager.letter_selector.select_letter(self.letter_subject)
        self.directory_page.move_to_newsletters()
        self.directory_page.go_to_newsletters()

    def test_send_empty_letter(self):
        self.manager.letter_writer.click_write_letter_button()
        self.manager.letter_writer.click_send_letter_button()
        self.letter_subject = ''
        EXPECTED_MESSAGE = u'Не указан адрес получателя'
        self.assertEqual(EXPECTED_MESSAGE, self.directory_page.error_message())

    def test_send_letter_without_subject(self):
        self.letter_subject = ''
        LETTER_TEXT = 'Lorem text lorem lorem lorem'
        self.manager.letter_writer.click_write_letter_button()
        self.manager.letter_writer.enter_email_receiver(config.DEFAULT_MAIL)
        self.manager.letter_writer.enter_textbox(LETTER_TEXT)
        self.manager.letter_writer.click_send_letter_button()
        self.manager.letter_writer.close_sent_window()

        letter_selector = LetterSelector(self.driver)
        self.letter_subject = self.directory_page.empty_subject_text
        actual_text = letter_selector.get_letter_text(self.letter_subject)
        self.assertEqual(LETTER_TEXT, actual_text)

    def test_send_letter_without_receiver(self):
        self.letter_subject = 'Subject letter'
        LETTER_TEXT = 'Lorem text lorem lorem lorem'
        self.manager.letter_writer.click_write_letter_button()
        self.manager.letter_writer.enter_subject(self.letter_subject)
        self.manager.letter_writer.enter_textbox(LETTER_TEXT)
        self.manager.letter_writer.click_send_letter_button()
        self.letter_subject = ''
        EXPECTED_MESSAGE = u'Не указан адрес получателя'
        self.assertEqual(EXPECTED_MESSAGE, self.directory_page.error_message())

    def test_save_draft_letter(self):
        self.letter_subject = self.add_random_number('Draft letter ')
        LETTER_TEXT = 'Lorem text lorem lorem lorem'
        self.manager.letter_writer.click_write_letter_button()
        self.manager.letter_writer.enter_subject(self.letter_subject)
        self.manager.letter_writer.enter_textbox(LETTER_TEXT)
        self.directory_page.click_save_mail()

        self.directory_page.close_writer_window()

        self.directory_page.go_to_drafts()

        letter_selector = LetterSelector(self.driver)
        actual_text = letter_selector.get_mini_letter_text(self.letter_subject)
        self.directory_page.close_writer_window()
        self.assertEqual(LETTER_TEXT, actual_text)

    def test_send_draft_letter(self):
        self.letter_subject = self.add_random_number('Send draft letter ')
        LETTER_TEXT = 'Lorem text lorem lorem lorem'
        self.manager.letter_writer.click_write_letter_button()
        self.manager.letter_writer.enter_email_receiver(config.DEFAULT_MAIL)
        self.manager.letter_writer.enter_subject(self.letter_subject)
        self.manager.letter_writer.enter_textbox(LETTER_TEXT)
        self.directory_page.click_save_mail()
        self.directory_page.close_writer_window()
        self.directory_page.go_to_drafts()
        self.directory_page.open_draft()
        self.manager.letter_writer.click_send_letter_button()
        self.manager.letter_writer.close_sent_window()

    def tearDown(self):
        if self.letter_subject != '':
            cond1 = 'Mail for archive' not in self.letter_subject
            cond2 = '$$$ Archive' not in self.letter_subject
            cond3 = 'The SOCIAL letter' not in self.letter_subject
            cond4 = 'not SOCIAL letter' not in self.letter_subject
            cond5 = 'The NewsLetter letter' not in self.letter_subject
            cond6 = 'Draft letter ' not in self.letter_subject

            if cond1 and cond2 and cond3 and cond4 and cond5 and cond6:
                self.main_page.navigation_manager.go_to_inbox()

            self.manager.remove_letter(self.letter_subject)

        self.driver.quit()
Esempio n. 32
0
 def setup_class(cls):
     cls.Pages = MainPage().to_login().login('admin', '111111')