summaryrefslogtreecommitdiff
path: root/archaeological_context_records
diff options
context:
space:
mode:
authorQuentinAndre <quentin.andre@imt-atlantique.net>2021-08-25 11:54:27 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-07-08 09:58:48 +0200
commitac73c65cd3309e797c8c495454a8e48648f47090 (patch)
treeed4a2d6d326edcb6dbffb6b75d7a80f954a064e0 /archaeological_context_records
parent1a950f5e45f23b22d622022ded110fc85028f6f1 (diff)
downloadIshtar-ac73c65cd3309e797c8c495454a8e48648f47090.tar.bz2
Ishtar-ac73c65cd3309e797c8c495454a8e48648f47090.zip
additional tests without nested tabs for testing the ui of basefinds
Diffstat (limited to 'archaeological_context_records')
-rw-r--r--archaeological_context_records/tests.py64
1 files changed, 54 insertions, 10 deletions
diff --git a/archaeological_context_records/tests.py b/archaeological_context_records/tests.py
index 769d6a2b2..c1117a68d 100644
--- a/archaeological_context_records/tests.py
+++ b/archaeological_context_records/tests.py
@@ -1369,13 +1369,27 @@ class GraphGenerationTest(ContextRecordInit, TestCase):
class SeleniumTestsContextRecords(SeleniumTests):
fixtures = CONTEXT_RECORD_FIXTURES
- def _test_cr(self, i, pks, geojsons):
- infos = self.selenium.find_element_by_xpath('//tbody/tr[' + str(i) + ']/td/a[@class="display_details"]')
- self.scroll(infos)
- infos.click()
-
- label = self.selenium.find_element_by_xpath('//small[@title="ID interne" or @title="Internal ID"]').text
- label = label[1:]
+ def _test_cr(self, i, pks, geojsons, method=None):
+ if method == 'from operation':
+ tbody = '.' + '/div' * 6 + '/table/tbody'
+ title = self.selenium.find_element_by_xpath(
+ '//h3[contains(text(), "Unité d\'Enregistrement") or contains(text(), "Context record")]')
+ panel = title.find_element_by_xpath('./..')
+ details = panel.find_element_by_xpath(tbody + '/tr[' + str(i) + ']/td/a[@class="display_details"]')
+ self.scroll(details)
+ label = panel.find_element_by_xpath(tbody + '/tr[' + str(i) + ']/td[2]').text
+ details.click()
+ else:
+ tbody = './form' + '/div' * 7 + '/table/tbody'
+ title = '//h3[text()="Rechercher une unité d\'enregistrement" or text()="Context record search"]'
+ self.WebDriverWait(self.selenium, 2).until(lambda driver: driver.find_element_by_xpath(title))
+ title = self.selenium.find_element_by_xpath(title)
+ panel = title.find_element_by_xpath('./..')
+ details = panel.find_element_by_xpath(tbody + '/tr[' + str(i) + ']/td/a[@class="display_details"]')
+ self.scroll(details)
+ details.click()
+ label = self.selenium.find_element_by_xpath('//small[@title="ID interne" or @title="Internal ID"]').text
+ label = label[1:]
cr = models.ContextRecord.objects.get(pk=pks[label])
slug_pk = str(cr.SLUG) + "-" + str(cr.pk)
@@ -1383,9 +1397,9 @@ class SeleniumTestsContextRecords(SeleniumTests):
base = copy.deepcopy(geojsons[label]['get_pts'])
else:
base = copy.deepcopy(geojsons[label]['get_polys'])
- self.assertMap(base, slug_pk)
get_poly_id = "get-poly-for-" + slug_pk
+ get_poly_label_id = "get-poly-label-for-" + slug_pk
disp_bf_id = "disp-bf-for-" + slug_pk
cr_polys = geojsons[label]['get_polys']
@@ -1404,10 +1418,13 @@ class SeleniumTestsContextRecords(SeleniumTests):
lambda driver: driver.find_element_by_xpath(
'//dl[@class="col-12"]/dt[text()="Display geo items" or text()="Afficher les éléments"]'))
dd = '//dl[@class="col-12"]/dd'
+ self.selenium.find_element_by_xpath(dd + '/fieldset/label[@for="' + disp_bf_id + '"]')
disp_bf = self.selenium.find_element_by_xpath(dd + '/fieldset/input[@id="' + disp_bf_id + '"]')
self.assertFalse(disp_bf.is_selected())
select_get_poly = dd + '/select[@id="' + get_poly_id + '"]'
+ get_poly_label = dd + '/label[@id="' + get_poly_label_id + '"]'
self.assertNotInDOM(select_get_poly)
+ self.assertNotInDOM(get_poly_label)
self.assertMap(base, slug_pk)
# context record specific
@@ -1416,15 +1433,19 @@ class SeleniumTestsContextRecords(SeleniumTests):
self.selenium.execute_script('return initialize_test_map(arguments[0])', slug_pk)
self.scroll(disp_bf)
disp_bf.click()
+ select_get_poly = dd + '/select[@id="' + get_poly_id + '"]'
+ get_poly = self.selenium.find_element_by_xpath(select_get_poly)
+ get_poly.click()
+ self.selenium.find_element_by_xpath(select_get_poly + '/option[@value="polygons"]').click()
bf_geoms = [
bf_polys,
{'type': 'FeatureCollection', 'features': []}
]
self.assertTrue(disp_bf.is_selected())
+ self.selenium.find_element_by_xpath(get_poly_label)
self.assertMap(base, slug_pk, bf_geoms)
- select_get_poly = dd + '/select[@id="' + get_poly_id + '"]'
get_poly = self.selenium.find_element_by_xpath(select_get_poly)
get_poly.click()
self.selenium.find_element_by_xpath(select_get_poly + '/option[@value="points"]').click()
@@ -1433,6 +1454,7 @@ class SeleniumTestsContextRecords(SeleniumTests):
{'type': 'FeatureCollection', 'features': []}
]
self.assertTrue(disp_bf.is_selected())
+ self.selenium.find_element_by_xpath(get_poly_label)
self.assertMap(base, slug_pk, bf_geoms)
# Click on "None"
@@ -1440,10 +1462,29 @@ class SeleniumTestsContextRecords(SeleniumTests):
disp_bf.click()
self.assertFalse(disp_bf.is_selected())
self.assertNotInDOM(select_get_poly)
+ self.assertNotInDOM(get_poly_label)
self.assertMap(base, slug_pk)
def test_geo_items(self):
pks, geojsons = self.pks_and_geojson()
+ # from operation
+ for i in range(1, 3):
+ self.WebDriverWait(self.selenium, 2).until(
+ lambda driver: driver.find_element_by_xpath(
+ '//a[@class="nav-link dropdown-toggle"][@id="dropdown-menu-main"]'))
+ dropdown = self.selenium.find_element_by_xpath(
+ '//a[@class="nav-link dropdown-toggle"][@id="dropdown-menu-main"]')
+ self.scroll(dropdown)
+ dropdown.click()
+ self.selenium.find_element_by_xpath('//div[@class="dropdown-menu show"]/a[@href="/operation_search/"]').click()
+ details = self.selenium.find_element_by_xpath('//tbody/tr[' + str(i) + ']/td/a[@class="display_details"]')
+ self.scroll(details)
+ details.click()
+ self.selenium.find_element_by_xpath(
+ '//ul[@role="tablist"]/li/a[contains(text(), "Unités d\'Enregistrement") or contains(text(), "Context records")]').click()
+ for j in range(1, 3):
+ self._test_cr(j, pks, copy.deepcopy(geojsons), method="from operation")
+ # from search bar
for i in range(1, 5):
self.WebDriverWait(self.selenium, 2).until(
lambda driver: driver.find_element_by_xpath(
@@ -1453,4 +1494,7 @@ class SeleniumTestsContextRecords(SeleniumTests):
self.scroll(dropdown)
dropdown.click()
self.selenium.find_element_by_xpath('//div[@class="dropdown-menu show"]/a[@href="/record_search/"]').click()
- self._test_cr(i, pks, geojsons)
+ self._test_cr(i, pks, copy.deepcopy(geojsons))
+ # from bottom table, multiple displays
+ for i in range(1, 4):
+ self._test_cr(i, pks, copy.deepcopy(geojsons))