aboutsummaryrefslogtreecommitdiff
path: root/webtests
diff options
context:
space:
mode:
authorZachary Sloan2013-08-14 17:22:54 -0500
committerZachary Sloan2013-08-14 17:22:54 -0500
commiteea1c38a9851f31011787b27c14365211a06ea51 (patch)
tree9bdc469df73d0f26ea5c2651bae85efce54b3d96 /webtests
parenta1c5f1d8bac72c7430740266becfa70191d17314 (diff)
downloadgenenetwork2-eea1c38a9851f31011787b27c14365211a06ea51.tar.gz
Committing browser test files
Diffstat (limited to 'webtests')
-rw-r--r--webtests/browser_test.py65
-rwxr-xr-xwebtests/chromedriverbin0 -> 17741222 bytes
-rw-r--r--webtests/correlation_matrix_test.py118
-rw-r--r--webtests/correlation_test.py110
-rw-r--r--webtests/libpeerconnection.log0
-rw-r--r--webtests/marker_regression_test.py117
-rw-r--r--webtests/test1.py2
7 files changed, 411 insertions, 1 deletions
diff --git a/webtests/browser_test.py b/webtests/browser_test.py
new file mode 100644
index 00000000..50e4d128
--- /dev/null
+++ b/webtests/browser_test.py
@@ -0,0 +1,65 @@
+from __future__ import print_function, division, absolute_import
+
+from time import sleep
+
+import selenium
+from selenium import webdriver
+from selenium.common.exceptions import NoSuchElementException, ElementNotVisibleException
+from selenium.webdriver.common.keys import Keys
+
+class Test(object):
+ def __init__(self):
+ self.browser = webdriver.Chrome('/home/gn2/gn2/webtests/chromedriver')
+
+ def get(self, url):
+ self.browser.get(url)
+ sleep(5)
+ self.title()
+
+ def click(self, xpath_selector):
+ el = self.browser.find_element_by_xpath(xpath_selector)
+ if el.text:
+ text = el.text.strip()
+ elif el.get_attribute("value"):
+ text = el.get_attribute("value").strip()
+ else:
+ text = "Notext"
+ el.click()
+ print("clicked:", text)
+ sleep(2)
+
+ def click_option(self, xpath_selector, option_text):
+ el = self.browser.find_element_by_xpath(xpath_selector)
+ for option in el.find_elements_by_tag_name('option'):
+ if option.text == option_text:
+ option.click() # select() in earlier versions of webdriver
+ break
+ sleep(2)
+
+ def enter_text(self, xpath_selector, text):
+ el = self.browser.find_element_by_xpath(xpath_selector)
+ sleep(10)
+ el.send_keys(text)
+ sleep(5)
+ # Just in case things get mangled by JavaScript, etc. we print the text for testing
+ self.get_text(xpath_selector)
+
+ def get_text(self, xpath_selector):
+ el = self.browser.find_element_by_xpath(xpath_selector)
+ text = el.text.strip() or el.get_attribute("value").strip()
+ print("text:", text)
+
+ def switch_window(self):
+ self.browser.switch_to_window(self.browser.window_handles[-1])
+ sleep(2)
+ self.title()
+ sleep(2)
+
+
+ def title(self):
+ print("title:", self.browser.title)
+
+
+#if __name__ == '__main__':
+# import doctest
+# doctest.testmod() \ No newline at end of file
diff --git a/webtests/chromedriver b/webtests/chromedriver
new file mode 100755
index 00000000..754eb668
--- /dev/null
+++ b/webtests/chromedriver
Binary files differ
diff --git a/webtests/correlation_matrix_test.py b/webtests/correlation_matrix_test.py
new file mode 100644
index 00000000..21051fd7
--- /dev/null
+++ b/webtests/correlation_matrix_test.py
@@ -0,0 +1,118 @@
+"""
+
+Test Correlation matrix
+
+>>> test = Test()
+>>> test.get("http://genenetwork.org/")
+title: GeneNetwork
+
+Choose the type
+>>> test.click_option('''//*[@id="tissue"]''', 'Hippocampus mRNA')
+
+Enter the Get Any
+>>> test.enter_text('''//*[@id="tfor"]''', 'grin2b')
+text: grin2b
+
+Search
+>>> test.click('//*[@id="btsearch"]')
+
+Select the first 4 records
+>>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/p/table/tbody/tr[3]/td/div/table/tbody/tr[2]/td/input''')
+>>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/p/table/tbody/tr[3]/td/div/table/tbody/tr[3]/td/input''')
+>>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/p/table/tbody/tr[3]/td/div/table/tbody/tr[4]/td/input''')
+>>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/p/table/tbody/tr[3]/td/div/table/tbody/tr[5]/td/input''')
+
+>>> sleep(5)
+
+Add to collection page
+>>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/p/table/tbody/tr[1]/td/table/tbody/tr[1]/td[4]/a''')
+
+>>> sleep(5)
+
+A new window is created, so we switch to it
+>>> test.switch_window()
+title: BXD Trait Collection
+
+Select all records
+>>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/a/img''')
+
+
+Click Matrix
+>>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[2]/a/img''')
+
+Another new window
+>>> test.switch_window()
+title: Correlation Matrix
+
+Sleep a bunch because this can take a while
+>>> sleep(10)
+
+Ensure that the correlation between Trait3 (HC_M2_0606_P::1457003_at) and Trait4 (HC_M2_0606_P::1422223_at) is 0.608
+>>> test.get_text('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/blockquote/table/tbody/tr[5]/td[5]/a/font''')
+text: 0.608\n71
+
+"""
+
+from __future__ import print_function, division, absolute_import
+
+from time import sleep
+
+import selenium
+from selenium import webdriver
+from selenium.common.exceptions import NoSuchElementException, ElementNotVisibleException
+from selenium.webdriver.common.keys import Keys
+
+from browser_test import Test
+#
+#class Test(object):
+# def __init__(self):
+# self.browser = webdriver.Chrome('/home/gn2/gn2/webtests/chromedriver')
+#
+# def get(self, url):
+# self.browser.get(url)
+# sleep(5)
+# self.title()
+#
+# def click(self, xpath_selector):
+# el = self.browser.find_element_by_xpath(xpath_selector)
+# #text = el.text.strip() or el.get_attribute("value").strip()
+# el.click()
+# #print("clicked:", text)
+# sleep(2)
+#
+# def click_option(self, xpath_selector, option_text):
+# el = self.browser.find_element_by_xpath(xpath_selector)
+# for option in el.find_elements_by_tag_name('option'):
+# if option.text == option_text:
+# option.click() # select() in earlier versions of webdriver
+# break
+# sleep(2)
+#
+# def enter_text(self, xpath_selector, text):
+# el = self.browser.find_element_by_xpath(xpath_selector)
+# sleep(10)
+# el.send_keys(text)
+# sleep(5)
+# # Just in case things get mangled by JavaScript, etc. we print the text for testing
+# self.get_text(xpath_selector)
+#
+# def get_text(self, xpath_selector):
+# el = self.browser.find_element_by_xpath(xpath_selector)
+# text = el.text.strip() or el.get_attribute("value").strip()
+# print("text:", text)
+#
+# def switch_window(self):
+# self.browser.switch_to_window(self.browser.window_handles[-1])
+# sleep(2)
+# self.title()
+# sleep(2)
+#
+#
+# def title(self):
+# print("title:", self.browser.title)
+#
+#
+#
+if __name__ == '__main__':
+ import doctest
+ doctest.testmod()
diff --git a/webtests/correlation_test.py b/webtests/correlation_test.py
new file mode 100644
index 00000000..aaf3f7df
--- /dev/null
+++ b/webtests/correlation_test.py
@@ -0,0 +1,110 @@
+"""
+Test calculate correlations
+
+>>> test = Test()
+>>> test.get("http://genenetwork.org")
+title: GeneNetwork
+
+Choose the type
+>>> test.click_option('''//*[@id="tissue"]''', 'Hippocampus mRNA')
+
+Enter the Get Any
+>>> test.enter_text('''//*[@id="tfor"]''', 'ssh')
+text: ssh
+
+Search
+>>> test.click('//*[@id="btsearch"]')
+clicked: Search
+
+Choose the first result
+>>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/p/table/tbody/tr[3]/td/div/table/tbody/tr[2]/td[2]/a''')
+clicked: 1455854_a_at
+
+A new window is created, so we switch to it
+>>> test.switch_window()
+title: Hippocampus M430v2 BXD 06/06 PDNN : 1455854_a_at: Display Trait
+
+Click on Calculate Correlations
+>>> test.click('''//*[@id="title3"]''')
+clicked: Calculate Correlations
+
+Click on Compute
+>>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/p[6]/table/tbody/tr/td/div/div/span/table/tbody/tr/td/input[3]''')
+clicked: Compute
+
+Another new window
+>>> test.switch_window()
+title: Correlation
+
+Sleep a bunch because this can take a while
+>>> sleep(60)
+
+Ensure the Sample rho is the exepcted 1.000 because it should be the same record
+>>> test.get_text('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/table/tbody/tr[2]/td/div/table/tbody/tr[2]/td[9]/a''')
+text: 1.000
+
+"""
+
+from __future__ import print_function, division, absolute_import
+
+from time import sleep
+
+
+import selenium
+from selenium import webdriver
+from selenium.common.exceptions import NoSuchElementException, ElementNotVisibleException
+from selenium.webdriver.common.keys import Keys
+
+
+class Test(object):
+ def __init__(self):
+ self.browser = webdriver.Chrome('/home/gn2/gn2/webtests/chromedriver')
+
+ def get(self, url):
+ self.browser.get(url)
+ sleep(5)
+ self.title()
+
+ def click(self, xpath_selector):
+ el = self.browser.find_element_by_xpath(xpath_selector)
+ text = el.text.strip() or el.get_attribute("value").strip()
+ el.click()
+ print("clicked:", text)
+ sleep(2)
+
+ def click_option(self, xpath_selector, option_text):
+ el = self.browser.find_element_by_xpath(xpath_selector)
+ for option in el.find_elements_by_tag_name('option'):
+ if option.text == option_text:
+ option.click() # select() in earlier versions of webdriver
+ break
+ sleep(2)
+
+ def enter_text(self, xpath_selector, text):
+ el = self.browser.find_element_by_xpath(xpath_selector)
+ sleep(10)
+ el.send_keys(text)
+ sleep(5)
+ # Just in case things get mangled by JavaScript, etc. we print the text for testing
+ self.get_text(xpath_selector)
+
+ def get_text(self, xpath_selector):
+ el = self.browser.find_element_by_xpath(xpath_selector)
+ text = el.text.strip() or el.get_attribute("value").strip()
+ print("text:", text)
+
+ def switch_window(self):
+ self.browser.switch_to_window(self.browser.window_handles[-1])
+ sleep(2)
+ self.title()
+ sleep(2)
+
+
+ def title(self):
+ print("title:", self.browser.title)
+
+
+
+if __name__ == '__main__':
+ import doctest
+ doctest.testmod()
diff --git a/webtests/libpeerconnection.log b/webtests/libpeerconnection.log
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/webtests/libpeerconnection.log
diff --git a/webtests/marker_regression_test.py b/webtests/marker_regression_test.py
new file mode 100644
index 00000000..3baf1e95
--- /dev/null
+++ b/webtests/marker_regression_test.py
@@ -0,0 +1,117 @@
+"""
+Test calculate correlations
+
+>>> test = Test()
+>>> test.get("http://genenetwork.org")
+title: GeneNetwork
+
+Choose the type
+>>> test.click_option('''//*[@id="tissue"]''', 'Liver mRNA')
+
+Enter the Get Any
+>>> test.enter_text('''//*[@id="tfor"]''', 'grin2b')
+text: grin2b
+
+Search
+>>> test.click('//*[@id="btsearch"]')
+clicked: Search
+
+Choose the second result
+>>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/p/table/tbody/tr[3]/td/div/table/tbody/tr[3]/td[2]/a''')
+clicked: 1431700_at_A
+
+A new window is created, so we switch to it
+>>> test.switch_window()
+title: GSE16780 UCLA Hybrid MDP Liver Affy HT M430A (Sep11) RMA : 1431700_at_A: Display Trait
+
+Click on Mapping Tools
+>>> test.click('''//*[@id="title4"]''')
+clicked: Mapping Tools
+
+Click on Marker Regression tab
+>>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/p[8]/table/tbody/tr/td/div/ul/li[2]/a''')
+clicked: Marker Regression
+
+Click on Compute
+>>> test.click('''/html/body/table/tbody/tr[3]/td/table/tbody/tr/td/form/p[8]/table/tbody/tr/td/div/div[2]/span/table/tbody/tr/td/input''')
+clicked: Compute
+
+Another new window
+>>> test.switch_window()
+title: Genome Association Result
+
+Sleep a bunch because this can take a while
+>>> sleep(60)
+
+Ensure that the LRS of the top record is the exepcted value
+>>> test.get_text('''/html/body/table/tbody/tr[3]/td/table/tbody/tr[4]/td/table/tbody/tr/td/div/table/tbody/tr[2]/td[2]''')
+text: 11.511
+
+"""
+
+from __future__ import print_function, division, absolute_import
+
+from browser_test import Test
+
+#
+#from time import sleep
+#
+#
+#import selenium
+#from selenium import webdriver
+#from selenium.common.exceptions import NoSuchElementException, ElementNotVisibleException
+#from selenium.webdriver.common.keys import Keys
+#
+#
+#class Test(object):
+# def __init__(self):
+# self.browser = webdriver.Chrome('/home/gn2/gn2/webtests/chromedriver')
+#
+# def get(self, url):
+# self.browser.get(url)
+# sleep(5)
+# self.title()
+#
+# def click(self, xpath_selector):
+# el = self.browser.find_element_by_xpath(xpath_selector)
+# text = el.text.strip() or el.get_attribute("value").strip()
+# el.click()
+# print("clicked:", text)
+# sleep(2)
+#
+# def click_option(self, xpath_selector, option_text):
+# el = self.browser.find_element_by_xpath(xpath_selector)
+# for option in el.find_elements_by_tag_name('option'):
+# if option.text == option_text:
+# option.click() # select() in earlier versions of webdriver
+# break
+# sleep(2)
+#
+# def enter_text(self, xpath_selector, text):
+# el = self.browser.find_element_by_xpath(xpath_selector)
+# sleep(10)
+# el.send_keys(text)
+# sleep(5)
+# # Just in case things get mangled by JavaScript, etc. we print the text for testing
+# self.get_text(xpath_selector)
+#
+# def get_text(self, xpath_selector):
+# el = self.browser.find_element_by_xpath(xpath_selector)
+# text = el.text.strip() or el.get_attribute("value").strip()
+# print("text:", text)
+#
+# def switch_window(self):
+# self.browser.switch_to_window(self.browser.window_handles[-1])
+# sleep(2)
+# self.title()
+# sleep(2)
+#
+#
+# def title(self):
+# print("title:", self.browser.title)
+
+
+
+if __name__ == '__main__':
+ import doctest
+ doctest.testmod()
diff --git a/webtests/test1.py b/webtests/test1.py
index c587e6e3..aaf3f7df 100644
--- a/webtests/test1.py
+++ b/webtests/test1.py
@@ -58,7 +58,7 @@ from selenium.webdriver.common.keys import Keys
class Test(object):
def __init__(self):
- self.browser = webdriver.Firefox()
+ self.browser = webdriver.Chrome('/home/gn2/gn2/webtests/chromedriver')
def get(self, url):
self.browser.get(url)