From 81ca52f3b0dc023d9920da05b5e788eb1dd00eba Mon Sep 17 00:00:00 2001
From: Tira Odhner <pair+aodhner@pivotal.io>
Date: Tue, 21 Mar 2017 14:52:33 -0400
Subject: [PATCH 3/3] Feature tests work for Greenplum

---
 .../copy_selected_columns_feature_test.py          | 11 +++++++++-
 ...n_feature_test.py => table_ddl_feature_test.py} | 25 +++++++---------------
 web/regression/feature_utils/pgadmin_page.py       |  5 ++++-
 3 files changed, 22 insertions(+), 19 deletions(-)
 rename web/pgadmin/feature_tests/{template_selection_feature_test.py => table_ddl_feature_test.py} (66%)

diff --git a/web/pgadmin/feature_tests/copy_selected_columns_feature_test.py b/web/pgadmin/feature_tests/copy_selected_columns_feature_test.py
index 89a1d2b4..7ec7e832 100644
--- a/web/pgadmin/feature_tests/copy_selected_columns_feature_test.py
+++ b/web/pgadmin/feature_tests/copy_selected_columns_feature_test.py
@@ -1,3 +1,12 @@
+##########################################################################
+#
+# pgAdmin 4 - PostgreSQL Tools
+#
+# Copyright (C) 2013 - 2017, The pgAdmin Development Team
+# This software is released under the PostgreSQL Licence
+#
+##########################################################################
+
 import pyperclip
 import time
 
@@ -28,7 +37,7 @@ class CopySelectedColumnsFeatureTest(BaseFeatureTest):
         self.page.find_by_partial_link_text("Query Tool").click()
         self.page.click_tab('Query-1')
         time.sleep(5)
-        ActionChains(self.page.driver).send_keys("SELECT * FROM test_table").perform()
+        ActionChains(self.page.driver).send_keys("SELECT * FROM test_table ORDER BY some_column").perform()
         self.page.driver.switch_to_frame(self.page.driver.find_element_by_tag_name("iframe"))
         self.page.find_by_id("btn-flash").click()
 
diff --git a/web/pgadmin/feature_tests/template_selection_feature_test.py b/web/pgadmin/feature_tests/table_ddl_feature_test.py
similarity index 66%
rename from web/pgadmin/feature_tests/template_selection_feature_test.py
rename to web/pgadmin/feature_tests/table_ddl_feature_test.py
index 3d7e2777..2f364437 100644
--- a/web/pgadmin/feature_tests/template_selection_feature_test.py
+++ b/web/pgadmin/feature_tests/table_ddl_feature_test.py
@@ -7,13 +7,11 @@
 #
 ##########################################################################
 
-from selenium.webdriver import ActionChains
-
 from regression import test_utils
 from regression.feature_utils.base_feature_test import BaseFeatureTest
 
 
-class TemplateSelectionFeatureTest(BaseFeatureTest):
+class TableDdlFeatureTest(BaseFeatureTest):
     def before(self):
         connection = test_utils.get_db_connection(self.server['db'],
                                                   self.server['username'],
@@ -34,25 +32,18 @@ class TemplateSelectionFeatureTest(BaseFeatureTest):
         self.page.toggle_open_tree_item('acceptance_test_db')
         self.page.toggle_open_tree_item('Schemas')
         self.page.toggle_open_tree_item('public')
-        self.page.find_by_xpath("//*[@id='tree']//*[@class='aciTreeText' and .='Trigger Functions']").click()
-        self.page.find_by_partial_link_text("Object").click()
-        ActionChains(self.page.driver) \
-            .move_to_element(self.page.driver.find_element_by_link_text("Create")) \
-            .perform()
-        self.page.find_by_partial_link_text("Trigger function...").click()
-        self.page.fill_input_by_field_name("name", "test-trigger-function")
-        self.page.find_by_partial_link_text("Definition").click()
-        self.page.fill_codemirror_area_with("some-trigger-function-content")
-        self.page.find_by_partial_link_text("SQL").click()
-
-        self.page.find_by_xpath("//*[contains(@class,'CodeMirror-lines') and contains(.,'LEAKPROOF')]")
+        self.page.toggle_open_tree_item('Tables')
+        self.page.select_tree_item('test_table')
+        self.page.click_tab("SQL")
+
+        self.page.find_by_xpath(
+            "//*[contains(@class,'CodeMirror-lines') and contains(.,'CREATE TABLE public.test_table')]")
 
     def after(self):
-        self.page.find_by_xpath("//button[contains(.,'Cancel')]").click()
         self.page.remove_server(self.server)
         connection = test_utils.get_db_connection(self.server['db'],
                                                   self.server['username'],
                                                   self.server['db_password'],
                                                   self.server['host'],
                                                   self.server['port'])
-        test_utils.drop_database(connection, "acceptance_test_db")
\ No newline at end of file
+        test_utils.drop_database(connection, "acceptance_test_db")
diff --git a/web/regression/feature_utils/pgadmin_page.py b/web/regression/feature_utils/pgadmin_page.py
index 9060fb0f..c1995966 100644
--- a/web/regression/feature_utils/pgadmin_page.py
+++ b/web/regression/feature_utils/pgadmin_page.py
@@ -72,6 +72,9 @@ class PgadminPage:
         self.find_by_partial_link_text("Delete/Drop").click()
         self.click_modal_ok()
 
+    def select_tree_item(self, tree_item_text):
+        self.find_by_xpath("//*[@id='tree']//*[.='" + tree_item_text + "' and @class='aciTreeItem']").click()
+
     def toggle_open_tree_item(self, tree_item_text):
         self.find_by_xpath("//*[@id='tree']//*[.='" + tree_item_text + "']/../*[@class='aciTreeButton']").click()
 
@@ -83,7 +86,7 @@ class PgadminPage:
 
     def find_by_partial_link_text(self, link_text):
         return self._wait_for(
-            'link with text "#{0}"'.format(link_text),
+            'link with text "{0}"'.format(link_text),
             EC.element_to_be_clickable((By.PARTIAL_LINK_TEXT, link_text))
         )
 
-- 
2.12.0

