From 3725fed8ed306681e627c495f5aeff556775ccec Mon Sep 17 00:00:00 2001
From: Arnaud Fontaine <arnaud.fontaine@nexedi.com>
Date: Fri, 4 Sep 2020 13:24:43 +0900
Subject: [PATCH] ZODB Components: erp5_km_ui_test: Migrate Functional Test.

---
 .../test.erp5.testFunctionalKM.py             |  66 +++++------
 .../test.erp5.testFunctionalKM.xml            | 110 ++++++++++++++++++
 bt5/erp5_km_ui_test/bt/template_test_id_list  |   1 +
 bt5/erp5_km_ui_test/bt/test_dependency_list   |  31 +++++
 4 files changed, 175 insertions(+), 33 deletions(-)
 rename product/ERP5Type/tests/testFunctionalKM.py => bt5/erp5_km_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalKM.py (52%)
 create mode 100644 bt5/erp5_km_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalKM.xml
 create mode 100644 bt5/erp5_km_ui_test/bt/template_test_id_list
 create mode 100644 bt5/erp5_km_ui_test/bt/test_dependency_list

diff --git a/product/ERP5Type/tests/testFunctionalKM.py b/bt5/erp5_km_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalKM.py
similarity index 52%
rename from product/ERP5Type/tests/testFunctionalKM.py
rename to bt5/erp5_km_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalKM.py
index 9573ec46e1..03600298ae 100644
--- a/product/ERP5Type/tests/testFunctionalKM.py
+++ b/bt5/erp5_km_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalKM.py
@@ -33,39 +33,39 @@ from Products.ERP5Type.tests.ERP5TypeFunctionalTestCase import \
         ERP5TypeFunctionalTestCase
 
 class TestZeleniumKM(ERP5TypeFunctionalTestCase):
-    foreground = 0
-    # Run only the Knowledge Management Tests.
-    run_only = "erp5_km_zuite"
+  foreground = 0
+  # Run only the Knowledge Management Tests.
+  run_only = "erp5_km_zuite"
 
-    def getBusinessTemplateList(self):
-        """
-          Return the list of business templates.
-        """
-        # XXX This is a rough list, we should drop as much as we can, and
-        # keep only minimal
-        return ('erp5_core_proxy_field_legacy', 'erp5_full_text_mroonga_catalog',
-                'erp5_base', 'erp5_ui_test_core', 'erp5_ui_test',
-                'erp5_dhtml_style', 'erp5_dhtml_ui_test',
-                'erp5_jquery', 'erp5_jquery_ui',
-                'erp5_knowledge_pad', 'erp5_pdm',
-                'erp5_simulation', 'erp5_trade', 'erp5_ooo_import',
-                'erp5_accounting', 'erp5_invoicing',
-                'erp5_simplified_invoicing', 'erp5_project',
-                'erp5_simulation', 'erp5_simulation_test',
-                'erp5_ingestion', 'erp5_ingestion_mysql_innodb_catalog',
-                'erp5_web', 'erp5_dms', 'erp5_dms_ui_test',
-                'erp5_ui_test_data',
-                'erp5_knowledge_pad_ui_test',
-                'erp5_credential', 'erp5_rss_style', 'erp5_discussion',
-                'erp5_km', 'erp5_km_ui_test_data', 'erp5_km_ui_test',
-                'erp5_l10n_fr', 'erp5_crm',
-                'erp5_forge',
-                'erp5_web_renderjs_ui',
-                'erp5_web_renderjs_ui_test_core',
-                'erp5_web_renderjs_ui_test',
-                )
+  def getBusinessTemplateList(self):
+    """
+    Return the list of business templates.
+    """
+    # XXX This is a rough list, we should drop as much as we can, and
+    # keep only minimal
+    return ('erp5_core_proxy_field_legacy', 'erp5_full_text_mroonga_catalog',
+            'erp5_base', 'erp5_ui_test_core', 'erp5_ui_test',
+            'erp5_dhtml_style', 'erp5_dhtml_ui_test',
+            'erp5_jquery', 'erp5_jquery_ui',
+            'erp5_knowledge_pad', 'erp5_pdm',
+            'erp5_simulation', 'erp5_trade', 'erp5_ooo_import',
+            'erp5_accounting', 'erp5_invoicing',
+            'erp5_simplified_invoicing', 'erp5_project',
+            'erp5_simulation', 'erp5_simulation_test',
+            'erp5_ingestion', 'erp5_ingestion_mysql_innodb_catalog',
+            'erp5_web', 'erp5_dms', 'erp5_dms_ui_test',
+            'erp5_ui_test_data',
+            'erp5_knowledge_pad_ui_test',
+            'erp5_credential', 'erp5_rss_style', 'erp5_discussion',
+            'erp5_km', 'erp5_km_ui_test_data', 'erp5_km_ui_test',
+            'erp5_l10n_fr', 'erp5_crm',
+            'erp5_forge',
+            'erp5_web_renderjs_ui',
+            'erp5_web_renderjs_ui_test_core',
+            'erp5_web_renderjs_ui_test',
+            )
 
 def test_suite():
-    suite = unittest.TestSuite()
-    suite.addTest(unittest.makeSuite(TestZeleniumKM))
-    return suite
+  suite = unittest.TestSuite()
+  suite.addTest(unittest.makeSuite(TestZeleniumKM))
+  return suite
\ No newline at end of file
diff --git a/bt5/erp5_km_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalKM.xml b/bt5/erp5_km_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalKM.xml
new file mode 100644
index 0000000000..276d7853ec
--- /dev/null
+++ b/bt5/erp5_km_ui_test/TestTemplateItem/portal_components/test.erp5.testFunctionalKM.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Test Component" module="erp5.portal_type"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>default_reference</string> </key>
+            <value> <string>testFunctionalKM</string> </value>
+        </item>
+        <item>
+            <key> <string>default_source_reference</string> </key>
+            <value> <string>Products.ERP5Type.tests.testFunctionalKM</string> </value>
+        </item>
+        <item>
+            <key> <string>description</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>test.erp5.testFunctionalKM</string> </value>
+        </item>
+        <item>
+            <key> <string>portal_type</string> </key>
+            <value> <string>Test Component</string> </value>
+        </item>
+        <item>
+            <key> <string>sid</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_error_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>text_content_warning_message</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>version</string> </key>
+            <value> <string>erp5</string> </value>
+        </item>
+        <item>
+            <key> <string>workflow_history</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <global name="PersistentMapping" module="Persistence.mapping"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>data</string> </key>
+            <value>
+              <dictionary>
+                <item>
+                    <key> <string>component_validation_workflow</string> </key>
+                    <value>
+                      <persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
+                    </value>
+                </item>
+              </dictionary>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="3" aka="AAAAAAAAAAM=">
+    <pickle>
+      <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_log</string> </key>
+            <value>
+              <list>
+                <dictionary>
+                  <item>
+                      <key> <string>action</string> </key>
+                      <value> <string>validate</string> </value>
+                  </item>
+                  <item>
+                      <key> <string>validation_state</string> </key>
+                      <value> <string>validated</string> </value>
+                  </item>
+                </dictionary>
+              </list>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_km_ui_test/bt/template_test_id_list b/bt5/erp5_km_ui_test/bt/template_test_id_list
new file mode 100644
index 0000000000..c49de044f7
--- /dev/null
+++ b/bt5/erp5_km_ui_test/bt/template_test_id_list
@@ -0,0 +1 @@
+test.erp5.testFunctionalKM
\ No newline at end of file
diff --git a/bt5/erp5_km_ui_test/bt/test_dependency_list b/bt5/erp5_km_ui_test/bt/test_dependency_list
new file mode 100644
index 0000000000..324e5c2e5f
--- /dev/null
+++ b/bt5/erp5_km_ui_test/bt/test_dependency_list
@@ -0,0 +1,31 @@
+erp5_core_proxy_field_legacy
+erp5_full_text_mroonga_catalog
+erp5_base
+erp5_ui_test
+erp5_dhtml_style
+erp5_dhtml_ui_test
+erp5_jquery
+erp5_jquery_ui
+erp5_knowledge_pad
+erp5_pdm
+erp5_simulation
+erp5_trade
+erp5_ooo_import
+erp5_accounting
+erp5_invoicing
+erp5_simplified_invoicing
+erp5_project
+erp5_simulation
+erp5_simulation_test
+erp5_ingestion
+erp5_ingestion_mysql_innodb_catalog
+erp5_web
+erp5_dms
+erp5_credential
+erp5_rss_style
+erp5_l10n_fr
+erp5_crm
+erp5_forge
+erp5_web_renderjs_ui
+erp5_web_renderjs_ui_test_core
+erp5_web_renderjs_ui_test
\ No newline at end of file
-- 
2.30.9