| # 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 initialize | |
| import Global_Locators | |
| class Disk_offering_Add(unittest.TestCase): | |
| def setUp(self): | |
| self.driver = initialize.getOrCreateWebdriver() | |
| self.verificationErrors = [] | |
| def test_diskadd(self): | |
| driver = self.driver | |
| self.driver.implicitly_wait(200) | |
| #Make sure you are on Dashboard | |
| driver.find_element_by_xpath(Global_Locators.dashboard_xpath).click() | |
| time.sleep(2) | |
| # Go to Service Offerings | |
| driver.find_element_by_xpath(Global_Locators.serviceOfferings_xpath).click() | |
| #Select Disk offering | |
| driver.find_element_by_xpath(Global_Locators.Offering_disk_xpath).click() | |
| # Add offering | |
| driver.find_element_by_xpath(Global_Locators.Offering_add_xpath).click() | |
| # Following have names.. so they do not have their global entries. | |
| driver.find_element_by_name("name").clear() | |
| driver.find_element_by_name("name").send_keys("Test Disk Name") | |
| driver.find_element_by_name("description").clear() | |
| driver.find_element_by_name("description").send_keys("Test Disk Description") | |
| driver.find_element_by_name("disksize").clear() | |
| driver.find_element_by_name("disksize").send_keys("1") | |
| driver.find_element_by_xpath("//button[@type='button']").click() | |
| time.sleep(20) | |
| ##Verification will be if this offering shows up into table and we can actually edit it. | |
| 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 Disk_offering_Edit(unittest.TestCase): | |
| def setUp(self): | |
| self.driver = initialize.getOrCreateWebdriver() | |
| self.verificationErrors = [] | |
| def test_diskedit(self): | |
| driver = self.driver | |
| self.driver.implicitly_wait(200) | |
| #Make sure you are on Dashboard | |
| driver.find_element_by_xpath(Global_Locators.dashboard_xpath).click() | |
| time.sleep(2) | |
| # Go to Service Offerings | |
| driver.find_element_by_xpath(Global_Locators.serviceOfferings_xpath).click() | |
| #Select Disk offering | |
| driver.find_element_by_xpath(Global_Locators.Offering_disk_xpath).click() | |
| # We will be searching for our disk offering into the table | |
| linkclass = None | |
| linkclass = driver.find_elements_by_xpath(Global_Locators.Offering_table_xpath) # This returns a list of all Offerings in table | |
| for link in linkclass: | |
| if link.text == "Test Disk Name": | |
| link.click() | |
| time.sleep(2) | |
| # Click Edit | |
| driver.find_element_by_css_selector(Global_Locators.Offering_edit_css).click() | |
| #Change name | |
| driver.find_element_by_name(Global_Locators.Offering_editname_name).clear() | |
| driver.find_element_by_name(Global_Locators.Offering_editname_name).send_keys("Test Name") | |
| # Change Description | |
| driver.find_element_by_name(Global_Locators.Offering_editdescription_name).clear() | |
| driver.find_element_by_name(Global_Locators.Offering_editdescription_name).send_keys("Test Description") | |
| #Click Done | |
| driver.find_element_by_css_selector(Global_Locators.Offering_editdone_css).click() | |
| time.sleep(10) | |
| 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) | |
| # Now we will find this offering and delete it!! | |
| class Disk_offering_Delete(unittest.TestCase): | |
| def setUp(self): | |
| self.driver = initialize.getOrCreateWebdriver() | |
| self.verificationErrors = [] | |
| def test_diskdelete(self): | |
| driver = self.driver | |
| self.driver.implicitly_wait(200) | |
| #Make sure you are on Dashboard | |
| driver.find_element_by_xpath(Global_Locators.dashboard_xpath).click() | |
| time.sleep(2) | |
| # Go to Service Offerings | |
| driver.find_element_by_xpath(Global_Locators.serviceOfferings_xpath).click() | |
| #Select Disk offering | |
| driver.find_element_by_xpath(Global_Locators.Offering_disk_xpath).click() | |
| ## Action part | |
| # We will be searching for our disk offering into the table | |
| linkclass = None | |
| linkclass = driver.find_elements_by_xpath(Global_Locators.Offering_table_xpath) # This returns a list of all Offerings in table | |
| for link in linkclass: | |
| if link.text == "Test Name": | |
| link.click() | |
| time.sleep(2) | |
| # Click Delete | |
| driver.find_element_by_css_selector(Global_Locators.Offering_delete_css).click() | |
| time.sleep(2) | |
| driver.find_element_by_xpath(Global_Locators.yesconfirmation_xapth).click() | |
| time.sleep(20) | |
| 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 Compute_offering_Add(unittest.TestCase): | |
| def setUp(self): | |
| self.driver = initialize.getOrCreateWebdriver() | |
| self.verificationErrors = [] | |
| def test_computeadd(self): | |
| driver = self.driver | |
| self.driver.implicitly_wait(200) | |
| #Make sure you are on Dashboard | |
| driver.find_element_by_xpath(Global_Locators.dashboard_xpath).click() | |
| time.sleep(2) | |
| # Go to Service Offerings | |
| driver.find_element_by_xpath(Global_Locators.serviceOfferings_xpath).click() | |
| #Select Compute offering | |
| driver.find_element_by_xpath(Global_Locators.Offering_compute_xpath).click() | |
| ## Action part | |
| # Add offering | |
| driver.find_element_by_xpath(Global_Locators.Offering_add_xpath).click() | |
| # Following do not have Global locators | |
| driver.find_element_by_id("label_name").clear() | |
| driver.find_element_by_id("label_name").send_keys("Test Compute Name") | |
| driver.find_element_by_id("label_description").clear() | |
| driver.find_element_by_id("label_description").send_keys("Test Compute Description") | |
| driver.find_element_by_id("label_num_cpu_cores").clear() | |
| driver.find_element_by_id("label_num_cpu_cores").send_keys("2") | |
| driver.find_element_by_id("label_cpu_mhz").clear() | |
| driver.find_element_by_id("label_cpu_mhz").send_keys("2000") | |
| driver.find_element_by_id("label_memory_mb").clear() | |
| driver.find_element_by_id("label_memory_mb").send_keys("2048") | |
| driver.find_element_by_id("label_network_rate").clear() | |
| driver.find_element_by_id("label_network_rate").send_keys("10") | |
| driver.find_element_by_id("label_offer_ha").click() | |
| driver.find_element_by_xpath("//button[@type='button']").click() | |
| time.sleep(2) | |
| #Make sure you are on 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 Compute_offering_Edit(unittest.TestCase): | |
| def setUp(self): | |
| self.driver = initialize.getOrCreateWebdriver() | |
| self.verificationErrors = [] | |
| def test_computeedit(self): | |
| driver = self.driver | |
| self.driver.implicitly_wait(200) | |
| #Make sure you are on Dashboard | |
| driver.find_element_by_xpath(Global_Locators.dashboard_xpath).click() | |
| time.sleep(2) | |
| ## Action part | |
| # Go to Service Offerings | |
| driver.find_element_by_xpath(Global_Locators.serviceOfferings_xpath).click() | |
| #Select Compute offering | |
| driver.find_element_by_xpath(Global_Locators.Offering_compute_xpath).click() | |
| # We will be searching for our disk offering into the table | |
| linkclass = None | |
| linkclass = driver.find_elements_by_xpath(Global_Locators.Offering_table_xpath) # This returns a list of all Offerings in table | |
| for link in linkclass: | |
| if link.text == "Test Compute Name": | |
| link.click() | |
| time.sleep(2) | |
| # Click Edit | |
| driver.find_element_by_css_selector(Global_Locators.Offering_edit_css).click() | |
| #Change name | |
| driver.find_element_by_name(Global_Locators.Offering_editname_name).clear() | |
| driver.find_element_by_name(Global_Locators.Offering_editname_name).send_keys("Test Name") | |
| # Change Description | |
| driver.find_element_by_name(Global_Locators.Offering_editdescription_name).clear() | |
| driver.find_element_by_name(Global_Locators.Offering_editdescription_name).send_keys("Test Description") | |
| #Click Done | |
| driver.find_element_by_css_selector(Global_Locators.Offering_editdone_css).click() | |
| time.sleep(10) | |
| 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 Compute_offering_Delete(unittest.TestCase): | |
| def setUp(self): | |
| self.driver = initialize.getOrCreateWebdriver() | |
| self.verificationErrors = [] | |
| def test_computedelete(self): | |
| driver = self.driver | |
| self.driver.implicitly_wait(200) | |
| #Make sure you are on Dashboard | |
| driver.find_element_by_xpath(Global_Locators.dashboard_xpath).click() | |
| time.sleep(2) | |
| # Go to Service Offerings | |
| driver.find_element_by_xpath(Global_Locators.serviceOfferings_xpath).click() | |
| #Select Compute offering | |
| driver.find_element_by_xpath(Global_Locators.Offering_compute_xpath).click() | |
| ## Action part | |
| # We will be searching for our disk offering into the table | |
| linkclass = None | |
| linkclass = driver.find_elements_by_xpath(Global_Locators.Offering_table_xpath) # This returns a list of all Offerings in table | |
| for link in linkclass: | |
| if link.text == "Test Name": | |
| link.click() | |
| time.sleep(2) | |
| # Click Delete | |
| driver.find_element_by_css_selector(Global_Locators.Offering_deletecompute_css).click() | |
| driver.find_element_by_xpath(Global_Locators.yesconfirmation_xapth).click() | |
| time.sleep(20) | |
| 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) |