# 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)