예제 #1
0
    def load_search_page(self):
        list_item = self.by_class('menu_search')
        link = list_item.find_element_by_tag_name('a').click()
        self.wait_with_folder_list()
        assert self.by_class('content_title').text.startswith('Search')

    def keyword_search(self):
        terms = self.by_id('search_terms')
        terms.send_keys('test')
        self.by_class('search_update').click()
        self.wait_with_folder_list()
        sleep(1)
        table = self.by_class('message_table_body')
        assert len(table.find_elements_by_tag_name('tr')) > 0

    def reset_search(self):
        self.by_class('search_reset').click()
        self.wait_with_folder_list()
        sleep(1)
        assert self.by_id('search_terms').get_attribute('value') == ''
        table = self.by_class('message_table_body')
        assert len(table.find_elements_by_tag_name('tr')) == 0


if __name__ == '__main__':

    print("SEARCH TEST")
    test_runner(SearchTest,
                ['load_search_page', 'keyword_search', 'reset_search'])
예제 #2
0
        self.wait_with_folder_list()
        assert self.by_class('sys_messages').text == 'Message Sent'

    def view_message_list(self):
        list_item = self.by_class('menu_unread')
        list_item.find_element_by_tag_name('a').click()
        self.wait_on_class('unseen')
        assert self.by_class('mailbox_list_title').text == 'Unread'
        subject = self.by_class('unseen')
        link = subject.find_element_by_tag_name('a')
        assert link.text == 'Test'

    def view_message_detail(self):
        subject = self.by_class('unseen')
        link = subject.find_element_by_tag_name('a').click()
        self.wait_on_class('header_subject')
        detail_subject = self.by_class('header_subject')
        header = detail_subject.find_element_by_tag_name('th')
        assert header.text == 'Test'

        
if __name__ == '__main__':

    print("SEND TEST")
    test_runner(SendTest, [
        'load_compose_page',
        'compose_message',
        'view_message_list',
        'view_message_detail'
    ])
예제 #3
0
        self.change_val(hidden_el, 'asdf')
        self.login(USER, PASS)
        self.wait()
        assert self.by_class('login_form') != None

    def good_login(self):
        self.load()
        self.login(USER, PASS)
        self.wait_with_folder_list()
        assert self.by_class('content_title') != None

    def good_logout(self):
        self.logout()
        self.wait()
        assert self.by_class('sys_messages').text == 'Session destroyed on logout'



if __name__ == '__main__':

    print("LOGIN TESTS")
    test_runner(LoginTests, [
        'bad_login_values',
        'missing_password',
        'missing_username',
        'missing_username_and_password',
        'bad_login_key',
        'good_login',
        'good_logout'
    ])
예제 #4
0
class InlineMsgTests(SettingsHelpers):
    def __init__(self):
        WebTest.__init__(self)
        self.login(USER, PASS)
        self.wait_with_folder_list()

    def set_inline_message_test(self):
        self.checkbox_test('general_setting', 'inline_message', False,
                           'inline_message')

    def navigate_msg_test(self):
        self.by_css('[data-source=".email_folders"]').click()
        allmsgs = self.by_class('menu_email')
        allmsgs.find_element_by_tag_name('a').click()
        self.wait_on_class('checkbox_cell')
        body = self.by_class('message_table_body')
        subject = body.find_element_by_class_name('subject')
        subject.find_element_by_tag_name('a').click()
        self.wait_on_class('header_subject')
        detail_subject = self.by_class('header_subject')
        header = detail_subject.find_element_by_tag_name('th')
        assert header.text.startswith('Test')


if __name__ == '__main__':

    print("INLINE MSG TESTS")
    test_runner(InlineMsgTests,
                ['set_inline_message_test', 'navigate_msg_test', 'logout'])
예제 #5
0
파일: settings.py 프로젝트: yongaru/cypht
from base import WebTest, USER, PASS
from runner import test_runner
from selenium.common.exceptions import ElementNotVisibleException

class SettingsTests(WebTest):

    def __init__(self):
        WebTest.__init__(self)
        self.login(USER, PASS)
        self.rest()

    def general_settings(self):
        self.by_css('[data-source=".settings"]').click()
        list_item = self.by_class('menu_settings')
        list_item.find_element_by_tag_name('a').click()
        self.by_css('[data-target=".general_setting"]').click()
        self.by_name('smtp_auto_bcc').click()
        self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        self.by_name('save_settings').click()
        self.rest()
        self.by_css('[data-source=".settings"]').click()
        assert self.by_class('sys_messages').text == 'Settings updated'

if __name__ == '__main__':

    print "SETTINGS TESTS"
    test_runner(SettingsTests, [
        'logout'
    ])
예제 #6
0
파일: settings.py 프로젝트: jasonmunro/hm3
#!/usr/bin/python

from base import WebTest, USER, PASS
from runner import test_runner
from selenium.common.exceptions import ElementNotVisibleException


class SettingsTests(WebTest):
    def __init__(self):
        WebTest.__init__(self)
        self.login(USER, PASS)
        self.rest()

    def general_settings(self):
        self.by_css('[data-source=".settings"]').click()
        list_item = self.by_class("menu_settings")
        list_item.find_element_by_tag_name("a").click()
        self.by_css('[data-target=".general_setting"]').click()
        self.by_name("smtp_auto_bcc").click()
        self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        self.by_name("save_settings").click()
        self.rest()
        self.by_css('[data-source=".settings"]').click()
        assert self.by_class("sys_messages").text == "Settings updated"


if __name__ == "__main__":

    print "SETTINGS TESTS"
    test_runner(SettingsTests, [])
예제 #7
0
        list_item.find_element_by_tag_name('a').click()
        self.rest()
        assert self.by_class('content_title').text == 'Change Password'

    def profiles(self):
        list_item = self.by_class('menu_profiles')
        list_item.find_element_by_tag_name('a').click()
        self.rest()
        assert self.by_class('content_title').text == 'Profiles'

if __name__ == '__main__':

    print "PAGE TESTS"
    test_runner(PageTests, [
        'search',
        'combined_inbox',
        'unread',
        'flagged',
        'contacts',
        'compose',
        'calendar',
        'history',
        'home',
        'servers',
        'site',
        'save',
        'password',
        'profiles',
        'logout',
    ])
예제 #8
0
파일: search.py 프로젝트: jasonmunro/hm3
        list_item = self.by_class('menu_search')
        link = list_item.find_element_by_tag_name('a').click()
        self.wait_with_folder_list()
        assert self.by_class('content_title').text.startswith('Search')

    def keyword_search(self):
        terms = self.by_id('search_terms')
        terms.send_keys('test')
        self.by_class('search_update').click();
        self.wait_with_folder_list()
        sleep(1)
        table = self.by_class('message_table_body')
        assert len(table.find_elements_by_tag_name('tr')) > 0

    def reset_search(self):
        self.by_class('search_reset').click()
        self.wait_with_folder_list()
        sleep(1)
        assert self.by_id('search_terms').get_attribute('value') == ''
        table = self.by_class('message_table_body')
        assert len(table.find_elements_by_tag_name('tr')) == 0

if __name__ == '__main__':

    print("SEARCH TEST")
    test_runner(SearchTest, [
        'load_search_page',
        'keyword_search',
        'reset_search'
    ])
예제 #9
0
파일: folder_list.py 프로젝트: ws-php/cypht
        link = list_item.find_element_by_tag_name('a')
        assert link.is_displayed() == False
        
    def hide_folders(self):
        self.by_class('hide_folders').click()
        list_item = self.by_class('menu_home')
        link = list_item.find_element_by_tag_name('a');
        assert link.is_displayed() == False
        self.wait()

    def show_folders(self):
        self.by_class('folder_toggle').click()
        list_item = self.by_class('menu_home')
        list_item.find_element_by_tag_name('a').click()
        self.wait()
        assert self.by_class('content_title').text == 'Home'
        self.by_css('[data-source=".main"]').click()


if __name__ == '__main__':

    print "FOLDER LIST TESTS"
    test_runner(FolderListTests, [
        'reload_folder_list',
        'expand_section',
        'collapse_section',
        'hide_folders',
        'show_folders',
        'logout'
    ])
예제 #10
0
        assert '*****@*****.**' in self.by_class('profile_details').text
        
    def edit_profile(self):
        table = self.by_class('profile_details')
        table.find_element_by_tag_name('a').click()
        self.wait_with_folder_list()
        name = self.by_name('profile_name')
        name.send_keys('New Name')
        self.by_class('profile_update').click()
        self.wait_with_folder_list()
        assert 'New Name' in self.by_class('profile_details').text
        
    def del_profile(self):
        table = self.by_class('profile_details')
        table.find_element_by_tag_name('a').click()
        self.wait_with_folder_list()
        self.by_name('profile_delete').click()
        self.wait_on_sys_message()
        assert self.by_class('sys_messages').text == 'Profile Deleted'


if __name__ == '__main__':

    print("PROFIILE TEST")
    test_runner(ProfileTest, [
        'load_profile_page',
        'add_profile',
        'edit_profile',
        'del_profile'
    ])
예제 #11
0
        WebTest.__init__(self)
        self.login(USER, PASS)
        self.wait_with_folder_list()

    def set_inline_message_test(self):
        self.checkbox_test('general_setting', 'inline_message', False, 'inline_message')

    def navigate_msg_test(self):
        self.by_css('[data-source=".email_folders"]').click()
        allmsgs = self.by_class('menu_email')
        allmsgs.find_element_by_tag_name('a').click()
        self.wait_on_class('checkbox_cell')
        body = self.by_class('message_table_body')
        subject = body.find_element_by_class_name('subject')
        subject.find_element_by_tag_name('a').click()
        self.wait_on_class('header_subject')
        detail_subject = self.by_class('header_subject')
        header = detail_subject.find_element_by_tag_name('th')
        assert header.text.startswith('Test')


if __name__ == '__main__':

    print("INLINE MSG TESTS")
    test_runner(InlineMsgTests, [

        'set_inline_message_test',
        'navigate_msg_test',
        'logout'
    ])
예제 #12
0
        self.nav_to_page(Keys.META + 'c', 'Contacts', 'content_title')

    def nav_to_compose(self):
        self.nav_to_page(Keys.META + 's', 'Compose', 'content_title')

    def toggle_folders(self):
        el = self.by_tag('body')
        el.send_keys(Keys.META + 't')  
        try:
            self.by_class('folder_list').click()
            #assert False == True
        except ElementNotVisibleException:
            pass
        el.send_keys(Keys.META + 't')  


if __name__ == '__main__':

    print("KEYBOARD SHORTCUT TESTS")
    test_runner(KeyboardShortcutTests, [

        'nav_to_history',
        'nav_to_contacts',
        'nav_to_everything',
        'nav_to_flagged',
        'nav_to_unread',
        'nav_to_compose',
        'toggle_folders',
        'logout'
    ])
예제 #13
0
파일: profiles.py 프로젝트: jasonmunro/hm3
        assert '*****@*****.**' in self.by_class('profile_details').text
        
    def edit_profile(self):
        table = self.by_class('profile_details')
        table.find_element_by_tag_name('a').click()
        self.wait_with_folder_list()
        name = self.by_name('profile_name')
        name.send_keys('New Name')
        self.by_class('profile_update').click()
        self.wait_with_folder_list()
        assert 'New Name' in self.by_class('profile_details').text
        
    def del_profile(self):
        table = self.by_class('profile_details')
        table.find_element_by_tag_name('a').click()
        self.wait_with_folder_list()
        self.by_name('profile_delete').click()
        self.wait_on_sys_message()
        assert self.by_class('sys_messages').text == 'Profile Deleted'


if __name__ == '__main__':

    print("PROFIILE TEST")
    test_runner(ProfileTest, [
        'load_profile_page',
        'add_profile',
        'edit_profile',
        'del_profile'
    ])
예제 #14
0
파일: send.py 프로젝트: jasonmunro/hm3
        self.wait_with_folder_list()
        assert self.by_class('sys_messages').text == 'Message Sent'

    def view_message_list(self):
        list_item = self.by_class('menu_unread')
        list_item.find_element_by_tag_name('a').click()
        self.wait_on_class('unseen')
        assert self.by_class('mailbox_list_title').text == 'Unread'
        subject = self.by_class('unseen')
        link = subject.find_element_by_tag_name('a')
        assert link.text == 'Test'

    def view_message_detail(self):
        subject = self.by_class('unseen')
        link = subject.find_element_by_tag_name('a').click()
        self.wait_on_class('header_subject')
        detail_subject = self.by_class('header_subject')
        header = detail_subject.find_element_by_tag_name('th')
        assert header.text == 'Test'

        
if __name__ == '__main__':

    print("SEND TEST")
    test_runner(SendTest, [
        'load_compose_page',
        'compose_message',
        'view_message_list',
        'view_message_detail'
    ])
예제 #15
0
    test_runner(SettingsTests, [

        # general options
        'list_style_test',
        'start_page_test',
        'tz_test',
        'theme_test',
        'imap_per_page_test',
        'mail_format_test',
        'auto_bcc_test',
        'keyboard_shortcuts_test',
        'inline_message_test',
        'no_folder_icons_test',
        'msg_list_icons_test',
        'msg_part_icons_test',
        'simple_msg_parts_test',
        'text_only_test',
        'disable_delete_prompt_test',
        'no_password_save_test',

        # unread options
        'unread_since_test',
        'unread_max_per_source_test',
        'unread_exclude_github_test',
        'unread_exclude_wp_test',
        'unread_exclude_feed_test',

        # flagged options
        'flagged_since_test',
        'flagged_max_per_source_test',

        # everything options
        'all_since_test',
        'all_max_per_source_test',

        # all E-mail options
        'all_email_since_test',
        'all_email_max_per_source_test',

        # feed options
        'feeds_since_test',
        'feeds_max_per_source_test',

        # sent options
        'sent_since_test',
        'sent_max_per_source_test',

        # github options
        'github_since_test',
        'github_max_per_source_test',

        # exit
        'logout'
    ])
예제 #16
0
파일: settings.py 프로젝트: jasonmunro/hm3
    test_runner(SettingsTests, [

        # general options
        'list_style_test',
        'start_page_test',
        'tz_test',
        'theme_test',
        'imap_per_page_test',
        'mail_format_test',
        'auto_bcc_test',
        'keyboard_shortcuts_test',
        'inline_message_test',
        'no_folder_icons_test',
        'msg_list_icons_test',
        'msg_part_icons_test',
        'simple_msg_parts_test',
        'text_only_test',
        'disable_delete_prompt_test',
        'no_password_save_test',

        # unread options
        'unread_since_test',
        'unread_max_per_source_test',
        'unread_exclude_github_test',
        'unread_exclude_wp_test',
        'unread_exclude_feed_test',

        # flagged options
        'flagged_since_test',
        'flagged_max_per_source_test',

        # everything options
        'all_since_test',
        'all_max_per_source_test',

        # all E-mail options
        'all_email_since_test',
        'all_email_max_per_source_test',

        # feed options
        'feeds_since_test',
        'feeds_max_per_source_test',

        # sent options
        'sent_since_test',
        'sent_max_per_source_test',

        # github options
        'github_since_test',
        'github_max_per_source_test',

        # exit
        'logout'
    ])
예제 #17
0
        self.login(USER, PASS)
        self.rest()
        assert self.by_class('content_title') == None

    def good_login(self):
        self.load()
        self.login(USER, PASS)
        self.rest()
        assert self.by_class('err') == None
        assert self.by_class('content_title') != None

    def good_logout(self):
        self.logout()
        self.rest()
        assert self.by_class('sys_messages').text == 'Session destroyed on logout'



if __name__ == '__main__':

    print "LOGIN TESTS"
    test_runner(LoginTests, [
        'bad_login_values',
        'missing_password',
        'missing_username',
        'missing_username_and_password',
        'bad_login_key',
        'good_login',
        'good_logout'
    ])
예제 #18
0
from base import WebTest, USER, PASS
from runner import test_runner
from selenium.common.exceptions import ElementNotVisibleException


class SettingsTests(WebTest):
    def __init__(self):
        WebTest.__init__(self)
        self.login(USER, PASS)
        self.rest()

    def general_settings(self):
        self.by_css('[data-source=".settings"]').click()
        list_item = self.by_class('menu_settings')
        list_item.find_element_by_tag_name('a').click()
        self.by_css('[data-target=".general_setting"]').click()
        self.by_name('smtp_auto_bcc').click()
        self.driver.execute_script(
            "window.scrollTo(0, document.body.scrollHeight);")
        self.by_name('save_settings').click()
        self.rest()
        self.by_css('[data-source=".settings"]').click()
        assert self.by_class('sys_messages').text == 'Settings updated'


if __name__ == '__main__':

    print "SETTINGS TESTS"
    test_runner(SettingsTests, [])
예제 #19
0
        list_item = self.by_class('menu_unread')
        link = list_item.find_element_by_tag_name('a')
        assert link.is_displayed() == False
        
    def hide_folders(self):
        self.by_class('hide_folders').click()
        list_item = self.by_class('menu_home')
        link = list_item.find_element_by_tag_name('a');
        assert link.is_displayed() == False

    def show_folders(self):
        self.by_class('folder_toggle').click()
        list_item = self.by_class('menu_home')
        list_item.find_element_by_tag_name('a').click()
        self.wait_with_folder_list()
        assert self.by_class('content_title').text == 'Home'
        self.by_css('[data-source=".main"]').click()


if __name__ == '__main__':

    print("FOLDER LIST TESTS")
    test_runner(FolderListTests, [
        #'reload_folder_list',
        'expand_section',
        'collapse_section',
        'hide_folders',
        'show_folders',
        'logout'
    ])
예제 #20
0
        self.by_id('imap_notls').click()
        self.by_name('submit_imap_server').click()
        self.wait_on_sys_message()
        assert self.by_class('sys_messages').text == 'Added server!'

    def imap_confirm(self):
        user = self.by_id('imap_user_' + IMAP_ID)
        user.send_keys('testuser')
        passw = self.by_id('imap_pass_' + IMAP_ID)
        passw.send_keys('testuser')
        self.by_class('test_imap_connect').click()
        self.wait_on_sys_message()
        assert self.by_class(
            'sys_messages'
        ).text == 'Successfully authenticated to the IMAP server'
        self.toggle_server_section('imap')


if __name__ == '__main__':

    print("SERVERS TEST")
    test_runner(
        ServersTest,
        [
            'load_servers_page',
            'smtp_add',
            'smtp_del',
            'imap_add',
            #'imap_confirm'
        ])
예제 #21
0
파일: pages.py 프로젝트: yongaru/cypht
        if self.mod_active('profiles'):
            return
        list_item = self.by_class('menu_profiles')
        list_item.find_element_by_tag_name('a').click()
        self.rest()
        assert self.by_class('content_title').text == 'Profiles'


if __name__ == '__main__':

    print "PAGE TESTS"
    test_runner(PageTests, [
        'search',
        'combined_inbox',
        'unread',
        'sent',
        'flagged',
        'contacts',
        'compose',
        'calendar',
        'history',
        'home',
        'servers',
        'site',
        'folders',
        'save',
        'password',
        'profiles',
        'logout',
    ])
예제 #22
0
파일: servers.py 프로젝트: jasonmunro/hm3
        addr = self.by_name('new_imap_address')
        addr.send_keys('localhost')
        port = self.by_name('new_imap_port')
        port.clear()
        port.send_keys(143)
        self.by_id('imap_notls').click()
        self.by_name('submit_imap_server').click()
        self.wait_on_sys_message()
        assert self.by_class('sys_messages').text == 'Added server!'

    def imap_confirm(self):
        user = self.by_id('imap_user_'+IMAP_ID)
        user.send_keys('testuser')
        passw = self.by_id('imap_pass_'+IMAP_ID)
        passw.send_keys('testuser')
        self.by_class('test_imap_connect').click()
        self.wait_on_sys_message()
        assert self.by_class('sys_messages').text == 'Successfully authenticated to the IMAP server'
        self.toggle_server_section('imap')

if __name__ == '__main__':

    print("SERVERS TEST")
    test_runner(ServersTest, [
        'load_servers_page',
        'smtp_add',
        'smtp_del',
        'imap_add',
        'imap_confirm'
    ])