def test_all_repos_private(self, session_browser): """Test repo accessability when all repos are private.""" _create_repo(session_browser, 'Test-repo', 'private', ok_if_exists=True) _set_all_repos_private(session_browser) if not functional.user_exists(session_browser, 'gitweb_user'): functional.create_user(session_browser, 'gitweb_user', groups=['git-access']) if not functional.user_exists(session_browser, 'nogroupuser'): functional.create_user(session_browser, 'nogroupuser', groups=[]) functional.login_with_account(session_browser, functional.base_url, 'gitweb_user') assert functional.is_available(session_browser, 'gitweb') assert len(functional.find_on_front_page(session_browser, 'gitweb')) == 1 functional.login_with_account(session_browser, functional.base_url, 'nogroupuser') assert not functional.is_available(session_browser, 'gitweb') assert len(functional.find_on_front_page(session_browser, 'gitweb')) == 0 functional.logout(session_browser) functional.access_url(session_browser, 'gitweb') assert functional.is_login_prompt(session_browser) assert len(functional.find_on_front_page(session_browser, 'gitweb')) == 0
def service_is_available(): if browser.is_element_present_by_xpath( '//h1[text()="Service Unavailable"]'): functional.access_url(browser, 'deluge') return False return True
def test_notifications(self, session_browser): """Test that authentication and usage reporting notifications are not shown.""" functional.app_enable(session_browser, self.app_name) functional.access_url(session_browser, self.app_name) _assert_usage_report_notification_not_shown(session_browser) _assert_authentication_notification_not_shown(session_browser)
def test_app_access(session_browser): """Test that only logged-in users can access Syncthing web interface.""" functional.logout(session_browser) functional.access_url(session_browser, 'syncthing') assert functional.is_login_prompt(session_browser) functional.login(session_browser) functional.access_url(session_browser, 'syncthing') assert functional.is_available(session_browser, 'syncthing')
def test_add_bookmark(self, session_browser): """Test adding a bookmark.""" self._shaarli_login(session_browser) functional.access_url(session_browser, 'shaarli/admin/add-shaare') addlink_form = session_browser.find_by_id('addlink-form') addlink_form.find_by_id('shaare').fill('https://freedombox.org/') addlink_form.find_by_css('input[type=submit]').click() time.sleep(2) session_browser.find_by_id('button-save-edit').click() links = session_browser.links.find_by_href('https://freedombox.org/') assert len(links) > 0
def _shaarli_is_setup(self, session_browser): """Finish shaarli installation by creating user.""" functional.access_url(session_browser, self.app_name) if not session_browser.url.endswith('/shaarli/install'): # Setup has already been completed. return username_field = session_browser.find_by_id('username') username_field.fill(functional.config['DEFAULT']['username']) password_field = session_browser.find_by_id('password') password_field.fill(functional.config['DEFAULT']['password']) functional.submit(session_browser)
def _shaarli_login(self, session_browser): """Login to shaarli.""" functional.access_url(session_browser, 'shaarli/login') login_form = session_browser.find_by_id('login-form') if not login_form: return login_field = login_form.find_by_name('login') login_field.fill(functional.config['DEFAULT']['username']) password_field = login_form.find_by_name('password') password_field.fill(functional.config['DEFAULT']['password']) login_form.find_by_css('input[type=submit]').click()
def _load_main_interface(browser): """Close the dialog boxes that many popup after visiting the URL.""" functional.access_url(browser, 'syncthing') def service_is_available(): if browser.is_element_present_by_xpath( '//h1[text()="Service Unavailable"]'): functional.access_url(browser, 'syncthing') return False return True # After a backup restore, service may not be available immediately functional.eventually(service_is_available) # Wait for javascript loading process to complete functional.eventually(lambda: browser.evaluate_script( 'angular.element("[ng-controller=SyncthingController]").scope()' '.thisDevice().name')) # Give browser additional time to setup site time.sleep(1)
def _load_main_interface(browser): """Close the dialog boxes that many popup after visiting the URL.""" functional.access_url(browser, 'syncthing') def service_is_available(): if browser.is_element_present_by_xpath( '//h1[text()="Service Unavailable"]'): functional.access_url(browser, 'syncthing') return False return True # After a backup restore, service may not be available immediately functional.eventually(service_is_available) # Wait for javascript loading process to complete browser.execute_script(''' document.is_ui_online = false; var old_console_log = console.log; console.log = function(message) { old_console_log.apply(null, arguments); if (message == 'UIOnline') { document.is_ui_online = true; console.log = old_console_log; } }; ''') functional.eventually( lambda: browser.evaluate_script('document.is_ui_online'), timeout=5) # Dismiss the Usage Reporting consent dialog functional.eventually(browser.find_by_id, ['ur']) usage_reporting = browser.find_by_id('ur').first functional.eventually(lambda: usage_reporting.visible, timeout=2) if usage_reporting.visible: yes_xpath = './/button[contains(@ng-click, "declineUR")]' usage_reporting.find_by_xpath(yes_xpath).first.click() functional.eventually(lambda: not usage_reporting.visible)
def access_application(session_browser, app_name): functional.access_url(session_browser, app_name)