mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Description: Putting in selenium_headless support. Command Line parameter added for management server ip.
255 lines
8.3 KiB
Python
255 lines
8.3 KiB
Python
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
import sys, os
|
|
sys.path.append(os.path.abspath(os.path.dirname(__file__) + '/'+'../lib'))
|
|
|
|
|
|
from selenium import webdriver
|
|
from selenium.webdriver.common.by import By
|
|
from selenium.webdriver.support.ui import Select
|
|
from selenium.common.exceptions import NoSuchElementException
|
|
import unittest, time
|
|
import Global_Locators
|
|
import initialize
|
|
|
|
|
|
|
|
class login(unittest.TestCase):
|
|
|
|
|
|
def setUp(self):
|
|
|
|
MS_URL = initialize.getMSip()
|
|
self.driver = initialize.getOrCreateWebdriver()
|
|
self.base_url = "http://"+ MS_URL +":8080/" # Your management Server IP goes here
|
|
self.verificationErrors = []
|
|
|
|
|
|
def test_login(self):
|
|
|
|
# Here we will clear the test box for Username and Password and fill them with actual login data.
|
|
# After that we will click Login (Submit button)
|
|
driver = self.driver
|
|
driver.maximize_window()
|
|
driver.get(self.base_url + "client/")
|
|
driver.find_element_by_css_selector(Global_Locators.login_username_css).clear()
|
|
driver.find_element_by_css_selector(Global_Locators.login_username_css).send_keys("admin")
|
|
driver.find_element_by_css_selector(Global_Locators.login_password_css).clear()
|
|
driver.find_element_by_css_selector(Global_Locators.login_password_css).send_keys("password")
|
|
driver.find_element_by_css_selector(Global_Locators.login_submit_css).click()
|
|
time.sleep(5)
|
|
|
|
|
|
|
|
|
|
def is_element_present(self, how, what):
|
|
|
|
try: self.driver.find_element(by=how, value=what)
|
|
except NoSuchElementException, e: return False
|
|
return True
|
|
|
|
|
|
|
|
def tearDown(self):
|
|
|
|
self.assertEqual([], self.verificationErrors)
|
|
|
|
|
|
|
|
################################################################################################################################################
|
|
|
|
|
|
|
|
class logout(unittest.TestCase):
|
|
|
|
|
|
|
|
def setUp(self):
|
|
|
|
self.driver = initialize.getOrCreateWebdriver()
|
|
self.driver.implicitly_wait(100)
|
|
self.verificationErrors = []
|
|
|
|
|
|
|
|
def test_logout(self):
|
|
|
|
# Here we will clear the test box for Username and Password and fill them with actual login data.
|
|
# After that we will click Login (Submit button)
|
|
driver = self.driver
|
|
driver.find_element_by_xpath("//div[@id='navigation']/ul/li").click()
|
|
driver.find_element_by_css_selector("div.icon.options").click()
|
|
driver.find_element_by_link_text("Logout").click()
|
|
|
|
|
|
|
|
|
|
def is_element_present(self, how, what):
|
|
|
|
try: self.driver.find_element(by=how, value=what)
|
|
except NoSuchElementException, e: return False
|
|
return True
|
|
|
|
|
|
|
|
def tearDown(self):
|
|
|
|
self.assertEqual([], self.verificationErrors)
|
|
|
|
|
|
|
|
################################################################################################################################################
|
|
|
|
|
|
|
|
class login_test(unittest.TestCase):
|
|
|
|
|
|
|
|
def setUp(self):
|
|
|
|
self.driver = initialize.getOrCreateWebdriver()
|
|
self.verificationErrors = []
|
|
|
|
|
|
def test_logintest(self):
|
|
|
|
# Here we will clear the test box for Username and Password and fill them with actual login data.
|
|
# After that we will click Login (Submit button)
|
|
driver = self.driver
|
|
driver.find_element_by_css_selector(Global_Locators.login_username_css).clear()
|
|
driver.find_element_by_css_selector(Global_Locators.login_username_css).send_keys("test")
|
|
driver.find_element_by_css_selector(Global_Locators.login_password_css).clear()
|
|
driver.find_element_by_css_selector(Global_Locators.login_password_css).send_keys("password")
|
|
driver.find_element_by_css_selector(Global_Locators.login_submit_css).click()
|
|
time.sleep(5)
|
|
|
|
|
|
|
|
def is_element_present(self, how, what):
|
|
|
|
try: self.driver.find_element(by=how, value=what)
|
|
except NoSuchElementException, e: return False
|
|
return True
|
|
|
|
|
|
|
|
def tearDown(self):
|
|
|
|
self.assertEqual([], self.verificationErrors)
|
|
|
|
|
|
################################################################################################################################################
|
|
|
|
|
|
class createAcc(unittest.TestCase):
|
|
|
|
|
|
def setUp(self):
|
|
|
|
self.driver = initialize.getOrCreateWebdriver()
|
|
self.verificationErrors = []
|
|
|
|
|
|
|
|
def test_createacc(self):
|
|
|
|
driver = self.driver
|
|
self.driver.implicitly_wait(100)
|
|
driver.find_element_by_xpath("//div[@id='navigation']/ul/li[8]/span[2]").click()
|
|
driver.find_element_by_xpath("//div[3]/span").click()
|
|
driver.find_element_by_id("label_username").clear()
|
|
driver.find_element_by_id("label_username").send_keys("test")
|
|
driver.find_element_by_id("password").clear()
|
|
driver.find_element_by_id("password").send_keys("password")
|
|
driver.find_element_by_id("label_confirm_password").clear()
|
|
driver.find_element_by_id("label_confirm_password").send_keys("password")
|
|
driver.find_element_by_id("label_email").clear()
|
|
driver.find_element_by_id("label_email").send_keys("test@citrix.com")
|
|
driver.find_element_by_id("label_first_name").clear()
|
|
driver.find_element_by_id("label_first_name").send_keys("test")
|
|
driver.find_element_by_id("label_last_name").clear()
|
|
driver.find_element_by_id("label_last_name").send_keys("test")
|
|
driver.find_element_by_id("label_domain").click()
|
|
Select(driver.find_element_by_id("label_type")).select_by_visible_text("Admin")
|
|
Select(driver.find_element_by_id("label_timezone")).select_by_visible_text("[UTC-08:00] Pacific Standard Time")
|
|
driver.find_element_by_xpath("//button[@type='button']").click()
|
|
|
|
# Go to Dashboard
|
|
driver.find_element_by_xpath(Global_Locators.dashboard_xpath).click()
|
|
time.sleep(30)
|
|
|
|
|
|
|
|
def is_element_present(self, how, what):
|
|
|
|
try: self.driver.find_element(by=how, value=what)
|
|
except NoSuchElementException, e: return False
|
|
return True
|
|
|
|
|
|
|
|
def tearDown(self):
|
|
|
|
self.assertEqual([], self.verificationErrors)
|
|
|
|
|
|
|
|
################################################################################################################################################
|
|
|
|
|
|
class tearAcc(unittest.TestCase):
|
|
|
|
|
|
def setUp(self):
|
|
|
|
self.driver = initialize.getOrCreateWebdriver()
|
|
self.verificationErrors = []
|
|
|
|
|
|
|
|
def test_tearacc(self):
|
|
|
|
driver = self.driver
|
|
driver.find_element_by_css_selector("li.navigation-item.accounts").click()
|
|
driver.find_element_by_css_selector("tr.odd > td.name.first").click()
|
|
driver.find_element_by_css_selector("a[alt=\"Delete account\"] > span.icon").click()
|
|
driver.find_element_by_xpath("(//button[@type='button'])[2]").click()
|
|
|
|
# Go to Dashboard
|
|
driver.find_element_by_xpath(Global_Locators.dashboard_xpath).click()
|
|
time.sleep(30)
|
|
|
|
|
|
|
|
def is_element_present(self, how, what):
|
|
|
|
try: self.driver.find_element(by=how, value=what)
|
|
except NoSuchElementException, e: return False
|
|
return True
|
|
|
|
|
|
def tearDown(self):
|
|
|
|
self.driver.quit()
|
|
self.assertEqual([], self.verificationErrors)
|
|
|
|
|
|
|
|
################################################################################################################################################
|