Example #1
0
 def setUpClass(cls):
     super(CrittercismTestCase, cls).setUpClass()
     #======= login to portal =========
     cls.browser.get(config.CliConfig().common.url + "/developers/login")
     cls.browser.find_element_by_id('email').clear()
     cls.browser.find_element_by_id('email').send_keys(config.CliConfig().login.username)
     cls.browser.find_element_by_name('password').send_keys(config.CliConfig().login.password)
     cls.browser.find_element_by_id('commit').submit()
Example #2
0
    def setUpClass(cls):
        super(SeleniumTestCase, cls).setUpClass()

        if os.environ.get("BROWSER", "firefox") == "firefox":
            cls.browser = webdriver.Remote(config.CliConfig().common.selenium_hub_url, DesiredCapabilities.FIREFOX)
        elif os.environ.get("BROWSER", "firefox") == "chrome":
            cls.browser = webdriver.Remote(config.CliConfig().common.selenium_hub_url, DesiredCapabilities.CHROME)
        elif os.environ.get("BROWSER", "firefox") == "safari":
            cls.browser = webdriver.Remote(config.CliConfig().common.selenium_hub_url, DesiredCapabilities.SAFARI)

        cls.browser.implicitly_wait(5)
Example #3
0
 def loadKnownBugs(cls):
     """Load data from known_failure File"""
     fH = None
     try:
         logger.info("Loading Known Failures from : " + str(config.CliConfig().common.known_bugs_filename))
         if os.path.isfile(config.CliConfig().common.known_bugs_filename):
             with open(config.CliConfig().common.known_bugs_filename) as fH:
                 for line in fH:
                     if re.search('^#', line):
                         continue
                     config.CliConfig().knownFailureList.append(line)
                     logger.debug(line)
     finally:
         if fH is not None:
             fH.close()
Example #4
0
    def setUpClass(cls):
        """


        """
        super(AlertTestSuite, cls).setUpClass()
        app_name = config.CliConfig().apps.android_with_data
        cls.app_ids.append(team.get_id_from_app_name(cls.browser, app_name)[0])
Example #5
0
    def setUpClass(cls):
        """


        """
        super(CrashDetailsTestSuite, cls).setUpClass()
        CrashDetailsTestSuite.app_ids = team.get_id_from_app_name(
            browser=cls.browser,
            app_name=config.CliConfig().apps.android_with_data)
Example #6
0
    def setUpClass(cls):
        """


        """
        super(AnalyticsTestSuite, cls).setUpClass()
        # cls.browser.get(cls.config.common.url + "/developers/analytics/52fb0fdb8b2e3365c6000008")
        AnalyticsTestSuite.app_ids = team.get_id_from_app_name(
            browser=cls.browser,
            app_name=config.CliConfig().apps.android_with_data)
Example #7
0
def login(browser=None,
          username=config.CliConfig().login.username,
          password=config.CliConfig().login.password):
    """
        Login to crittercism using username and password supplied.
        If no login credential is passed then it use from the config file

        :Args:
         - browser = Current instance of browser to use to login
         - username = Optional Value: username to login into yahoo
         - password = Optional Value: password to login. Yes, the password is in plain text at the moment will encrypt it soon

        :Usage:
            utils.login(self.browser)
    """
    browser.get(config.CliConfig().common.url + "/developers/login")
    browser.find_element_by_id('email').clear()
    browser.find_element_by_id('email').send_keys(username)
    browser.find_element_by_name('password').send_keys(password)
    browser.find_element_by_id('commit').submit()
def canSkipped(message):
    """
     Iterate through all the known failures and skip the error if it is already recorded
    """
    for failure in config.CliConfig().knownFailureList:
        msg = failure.split('|')
        logger.debug("Splitting " + str(msg.__len__()) + " " + join(msg))
        if msg[1].strip() in message:
            logger.warn("Skipping tests for " + str(failure))
            raise unittest.SkipTest(str(failure))

    return False
Example #9
0
def login_to_yahoo(browser=None,
                   username=config.CliConfig().login.test_user_engg,
                   password=config.CliConfig().login.password):
    """
        Login to yahoo mail using username and password supplied.
        If no login credential is passed then it use from the config file

        :Args:
         - browser = Current instance of browser to use to login
         - username = Optional Value: username to login into yahoo
         - password = Optional Value: password to login. Yes, the password is in plain text at the moment will encrypt it soon

        :Usage:
            utils.login_to_yahoo(self.browser)
    """
    browser.get("https://mail.yahoo.com")
    if browser.find_elements_by_id("username").__len__() == 0:
        logger.debug("Already logged in. Hence quitting")
        return

    browser.find_element_by_id("username").send_keys(username)
    browser.find_element_by_id("passwd").send_keys(password)
    browser.find_element_by_id(".save").submit()
    logger.debug("Hit the login button to login to yahoo")
Example #10
0
def delete_app_given_ids(browser=None, app_ids=None):
    """
        Delete the app(s) given an Ids
        :Args:
         - browser = Current instance of browser
         - app_ids = List of app_ids to delete

        :Usage:
            team.get_id_from_app_name(browser, app_ids)
    """
    for app_id in app_ids:
        url = config.CliConfig(
        ).common.url + '/developers/app-settings/' + app_id + '#delete-app'
        browser.get(url)
        browser.find_element_by_id('delete-app-' + app_id).click()
        alert = browser.switch_to_alert()
        alert.accept()

    return True
Example #11
0
def get_id_from_app_name(browser=None, app_name=None):
    """
        Return an app_id given an app name
        :Args:
         - browser = Current instance of browser
         - app_name = Name of the app to look for

        :Usage:
            team.get_id_from_app_name(browser, app_name)
    """
    browser.get(config.CliConfig().common.url + "/developers")

    table = browser.find_element_by_id("app-table")

    app_list = table.find_elements_by_xpath(
        '//*[@id="app-table"]/tbody/*/td[2]/a[contains(text(),"' + app_name +
        '")]')
    app_ids = []
    for app in app_list:
        id = app.get_attribute("href").split('/')
        app_ids.append(id[len(id) - 1])

    return app_ids
Example #12
0
    def test_billing_search_by_email(self):
        __name__ + """ [Test] Verify User's Email Address and Credit Card through admin login """

        search_page_url = config.CliConfig().common.url + "/admin/search"
        email_id = "*****@*****.**"
        self.browser.get(search_page_url)
        self.browser.find_element_by_id("search-email").send_keys(email_id +
                                                                  Keys.ENTER)

        email_link = self.browser.find_element_by_xpath(
            "//a[contains(text(),'" + email_id + "')]").get_attribute("href")
        self.browser.get(email_link)

        actual_email = self.browser.find_element_by_xpath(
            "//table//*/*[contains(text(),'*****@*****.**')]"
        ).text
        self.assertEqual(actual_email, email_id,
                         ("Expecting %s email but found %s instead" %
                          (actual_email, email_id)))

        billed_plan_caption = self.browser.find_element_by_xpath(
            '//*[@id="admin-portal"]/div/table[1]/tbody/tr[13]/td[1]/strong'
        ).text
        billed_plan_value = self.browser.find_element_by_xpath(
            '//*[@id="admin-portal"]/div/table[1]/tbody/tr[13]/td[2]').text
        self.assertEqual("Basic", billed_plan_value,
                         ("Expecting Basic but found %s" % billed_plan_value))

        pay_via_caption = self.browser.find_element_by_xpath(
            '//*[@id="admin-portal"]/div/table[1]/tbody/tr[16]/td[1]/strong'
        ).text
        pay_via_value = self.browser.find_element_by_xpath(
            '//*[@id="admin-portal"]/div/table[1]/tbody/tr[16]/td[2]').text
        self.assertEqual(
            "Credit Card", pay_via_value,
            ("Expecting Credit Card but found %s" % pay_via_value))
Example #13
0
import unittest

from nose.plugins.attrib import attr
from selenium.webdriver.common.keys import Keys

__author__ = 'farooque'

from src import baseTest
from src import clogger
from src import config

logger = clogger.setup_custom_logger(__name__)

page_url = config.CliConfig().common.url + "/account/billing"


class BillingSuite(baseTest.CrittercismTestCase):
    @classmethod
    def setUpClass(cls):
        super(BillingSuite, cls).setUpClass()
        pass

    def setUp(self):
        self.browser.get(page_url)
        pass

    @attr(genre="billing", smoke=True)
    def test_billing_page(self):
        self.assertFalse(self.is_url_broken(link=page_url),
                         " Oops page was found at " + page_url)
Example #14
0
 def setUpClass(cls):
     cls.config = config.CliConfig()
     logger.debug("SetupCLass for BaseTest")
     Initialization()
Example #15
0
import random

from selenium.webdriver.common.by import By
import unittest2 as unittest
from nose.plugins.attrib import attr

from src import clogger
from src import baseTest
from src.page_helpers import team
from src import config

__author__ = 'farooque'

page_url = config.CliConfig().common.url + "/developers/register-application"

#app_name = "TiborTestAPP"
app_name = "IOS-" + str(random.random())

logger = clogger.setup_custom_logger(__name__)


class UploadDSymSuite(baseTest.CrittercismTestCase):
    @classmethod
    def setUpClass(cls):
        super(UploadDSymSuite, cls).setUpClass()
        pass

    def setUp(self):
        self.browser.get(page_url)

        self.browser.find_element_by_id("app-name").send_keys(app_name)
Example #16
0
import unittest

from nose.plugins.attrib import attr

__author__ = 'farooque'

from src import baseTest
from src import config

page_url = config.CliConfig(
).common.url + '/developers/network/52fb0fdb8b2e3365c6000008/location/world/service/youtube/latency'


class NetworkTestSuite(baseTest.CrittercismTestCase):
    @classmethod
    def setUpClass(cls):
        super(NetworkTestSuite, cls).setUpClass()

    def setUp(self):
        self.browser.get(self.config.common.url +
                         "/developers/register_application")

    @attr(genre='latency-check')
    def test_verify_new_app_page_default_parameter_platform(self):
        __name__ + """[Test] Find all Broken Links from Developers landing page """

        pass


if __name__ == '__main__':
    unittest.main(verbosity=2)
Example #17
0
import time

import unittest2 as unittest
import nose.plugins.attrib
from selenium.webdriver.common.by import By

from src import baseTest
from src import clogger
from src import config
from src.page_helpers import utils

logger = clogger.setup_custom_logger(__name__)

__author__ = 'farooque'

page_url = config.CliConfig().common.url + "/developers/logout"


class LoginPageSuite(baseTest.SeleniumTestCase):
    #TODO: Move this to Utils or BaseClass and combine into one function from team.py
    def wait_for_password_reset_email(self):

        counter = 0
        utils.login_to_yahoo(browser=self.browser)
        while counter < 10:
            if self.browser.find_elements_by_xpath(
                    '//*[contains(text(),"Reset Your Password")]').__len__():
                self.browser.find_element_by_xpath(
                    '//*[contains(text(),"Reset Your Password")]').click()
                time.sleep(5)
                self.assertFalse(
Example #18
0
    def test_broken_links_developers_page(self):
        __name__ + """ [Test] Find all Broken Links from Developers landing page """

        page_url = config.CliConfig().common.url + "/developers/"
        self.browser.get(page_url)
        self.assert_on_broken_links()