diff --git a/bt5/erp5_officejs_afs_directory_ui_test/PathTemplateItem/portal_tests/afs_ui_zuite.xml b/bt5/erp5_officejs_afs_directory_ui_test/PathTemplateItem/portal_tests/afs_ui_zuite.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bde819e2a316e225f814c2b2c49a70038339e8a3
--- /dev/null
+++ b/bt5/erp5_officejs_afs_directory_ui_test/PathTemplateItem/portal_tests/afs_ui_zuite.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="Zuite" module="Products.Zelenium.zuite"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_objects</string> </key>
+            <value>
+              <tuple/>
+            </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>afs_ui_zuite</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_officejs_afs_directory_ui_test/PathTemplateItem/portal_tests/afs_ui_zuite/testAfsRenderjsBasicNavigation.xml b/bt5/erp5_officejs_afs_directory_ui_test/PathTemplateItem/portal_tests/afs_ui_zuite/testAfsRenderjsBasicNavigation.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6206ca92d1ca1a64de64bf8d1e4516a0fecb84b5
--- /dev/null
+++ b/bt5/erp5_officejs_afs_directory_ui_test/PathTemplateItem/portal_tests/afs_ui_zuite/testAfsRenderjsBasicNavigation.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>expand</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>testAfsRenderjsBasicNavigation</string> </value>
+        </item>
+        <item>
+            <key> <string>output_encoding</string> </key>
+            <value> <string>utf-8</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <unicode></unicode> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_officejs_afs_directory_ui_test/PathTemplateItem/portal_tests/afs_ui_zuite/testAfsRenderjsBasicNavigation.zpt b/bt5/erp5_officejs_afs_directory_ui_test/PathTemplateItem/portal_tests/afs_ui_zuite/testAfsRenderjsBasicNavigation.zpt
new file mode 100644
index 0000000000000000000000000000000000000000..b46dc9cb80288d27229a11b25f63aaa02210bc48
--- /dev/null
+++ b/bt5/erp5_officejs_afs_directory_ui_test/PathTemplateItem/portal_tests/afs_ui_zuite/testAfsRenderjsBasicNavigation.zpt
@@ -0,0 +1,138 @@
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+      xmlns:metal="http://xml.zope.org/namespaces/metal">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Test AFS UI</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Test RenderJS UI</td></tr>
+</thead><tbody>
+<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
+
+<!-- Clean Up -->
+<tr>
+  <td>open</td>
+  <td>${base_url}/bar_module/ListBoxZuite_reset</td>
+  <td></td>
+</tr>
+<tr>
+  <td>assertTextPresent</td>
+  <td>Reset Successfully.</td>
+  <td></td>
+</tr>
+
+<!-- Initialize -->
+<tr>
+  <td>open</td>
+  <td>${base_url}/web_site_module/afs/</td>
+  <td></td>
+</tr>
+
+<!-- Basic Menu Navigation -->
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//button[@data-i18n='Menu']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//button[@data-i18n='Menu']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n='Publishers']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//a[@data-i18n='Publishers']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//span[@data-i18n='Publisher List']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n='Next']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//button[@data-i18n='Menu']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n='Software Products']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//a[@data-i18n='Software Products']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//span[@data-i18n='Software List']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n='Next']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//button[@data-i18n='Menu']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n='Success Cases']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//a[@data-i18n='Success Cases']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//span[@data-i18n='Success Story List']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n='Next']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//button[@data-i18n='Menu']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n='Directory']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//a[@data-i18n='Directory']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//span[@data-i18n='Free Software Publisher Directory']</td>
+  <td></td>
+</tr>
+
+
+</tbody></table>
+</body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_officejs_afs_directory_ui_test/PathTemplateItem/portal_tests/afs_ui_zuite/testAfsRenderjsListNavigation.xml b/bt5/erp5_officejs_afs_directory_ui_test/PathTemplateItem/portal_tests/afs_ui_zuite/testAfsRenderjsListNavigation.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2d3dcef536f80821824ae6f21b7bb1c6decd8b30
--- /dev/null
+++ b/bt5/erp5_officejs_afs_directory_ui_test/PathTemplateItem/portal_tests/afs_ui_zuite/testAfsRenderjsListNavigation.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_bind_names</string> </key>
+            <value>
+              <object>
+                <klass>
+                  <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+                </klass>
+                <tuple/>
+                <state>
+                  <dictionary>
+                    <item>
+                        <key> <string>_asgns</string> </key>
+                        <value>
+                          <dictionary>
+                            <item>
+                                <key> <string>name_subpath</string> </key>
+                                <value> <string>traverse_subpath</string> </value>
+                            </item>
+                          </dictionary>
+                        </value>
+                    </item>
+                  </dictionary>
+                </state>
+              </object>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/html</string> </value>
+        </item>
+        <item>
+            <key> <string>expand</string> </key>
+            <value> <int>0</int> </value>
+        </item>
+        <item>
+            <key> <string>id</string> </key>
+            <value> <string>testAfsRenderjsListNavigation</string> </value>
+        </item>
+        <item>
+            <key> <string>output_encoding</string> </key>
+            <value> <string>utf-8</string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <unicode></unicode> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_officejs_afs_directory_ui_test/PathTemplateItem/portal_tests/afs_ui_zuite/testAfsRenderjsListNavigation.zpt b/bt5/erp5_officejs_afs_directory_ui_test/PathTemplateItem/portal_tests/afs_ui_zuite/testAfsRenderjsListNavigation.zpt
new file mode 100644
index 0000000000000000000000000000000000000000..9ad3bd540d2b3922bfc82551b3b81a6217b3d570
--- /dev/null
+++ b/bt5/erp5_officejs_afs_directory_ui_test/PathTemplateItem/portal_tests/afs_ui_zuite/testAfsRenderjsListNavigation.zpt
@@ -0,0 +1,207 @@
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"
+      xmlns:metal="http://xml.zope.org/namespaces/metal">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Test AFS UI List Navigation</title>
+</head>
+<body>
+<table cellpadding="1" cellspacing="1" border="1">
+<thead>
+<tr><td rowspan="1" colspan="3">Test RenderJS UI</td></tr>
+</thead><tbody>
+<tal:block metal:use-macro="here/Zuite_CommonTemplate/macros/init" />
+
+<!-- Clean Up -->
+<tr>
+  <td>open</td>
+  <td>${base_url}/bar_module/ListBoxZuite_reset</td>
+  <td></td>
+</tr>
+<tr>
+  <td>assertTextPresent</td>
+  <td>Reset Successfully.</td>
+  <td></td>
+</tr>
+
+<!-- Initialize -->
+<tr>
+  <td>open</td>
+  <td>${base_url}/web_site_module/afs/</td>
+  <td></td>
+</tr>
+
+<!-- Basic Menu Navigation -->
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//button[@data-i18n='Menu']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//button[@data-i18n='Menu']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n='Publishers']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//a[@data-i18n='Publishers']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//span[@data-i18n='Publisher List']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n='Next']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>assertElementPresent</td>
+  <td>//input[@id='search']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>type</td>
+  <td>name=search</td>
+  <td>Nexedi</td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//button[@class='search_button ui-shadow-inset ui-btn ui-btn-inline ui-corner-all ui-btn-icon-notext ui-icon-search ui-override-theme ui-input-btn']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//span[@data-i18n='1 Records']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//table/tbody/tr/th[1]/a</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[@class='custom-software-profile-image-wrapper']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//button[@data-i18n='Menu']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n='Software Products']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//a[@data-i18n='Software Products']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//span[@data-i18n='Software List']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n='Next']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>assertElementPresent</td>
+  <td>//input[@id='search']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>type</td>
+  <td>name=search</td>
+  <td>ERP5</td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//button[@class='search_button ui-shadow-inset ui-btn ui-btn-inline ui-corner-all ui-btn-icon-notext ui-icon-search ui-override-theme ui-input-btn']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//span[@data-i18n='1 Records']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//table/tbody/tr/th[1]/a</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[@class='custom-software-profile-image-wrapper']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//button[@data-i18n='Menu']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n='Success Cases']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//a[@data-i18n='Success Cases']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//span[@data-i18n='Success Story List']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//a[@data-i18n='Next']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>assertElementPresent</td>
+  <td>//input[@id='search']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>type</td>
+  <td>name=search</td>
+  <td>Airbus</td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//button[@class='search_button ui-shadow-inset ui-btn ui-btn-inline ui-corner-all ui-btn-icon-notext ui-icon-search ui-override-theme ui-input-btn']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//span[@data-i18n='1 Records']</td>
+  <td></td>
+</tr>
+<tr>
+  <td>click</td>
+  <td>//table/tbody/tr/th[1]/a</td>
+  <td></td>
+</tr>
+<tr>
+  <td>waitForElementPresent</td>
+  <td>//div[@class='custom-success-story-image-wrapper']</td>
+  <td></td>
+</tr>
+
+</tbody></table>
+</body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_officejs_afs_directory_ui_test/bt/change_log b/bt5/erp5_officejs_afs_directory_ui_test/bt/change_log
new file mode 100644
index 0000000000000000000000000000000000000000..5bd5a5610db7dc9eaccdca178fb6d969b3e7bbad
--- /dev/null
+++ b/bt5/erp5_officejs_afs_directory_ui_test/bt/change_log
@@ -0,0 +1 @@
+0.1 Initial Version
\ No newline at end of file
diff --git a/bt5/erp5_officejs_afs_directory_ui_test/bt/dependency_list b/bt5/erp5_officejs_afs_directory_ui_test/bt/dependency_list
new file mode 100644
index 0000000000000000000000000000000000000000..6a6feb55f4d92a0b5a815d062c0e91bb96a504fa
--- /dev/null
+++ b/bt5/erp5_officejs_afs_directory_ui_test/bt/dependency_list
@@ -0,0 +1,7 @@
+erp5_officejs_afs_directory
+erp5_web_renderjs_ui
+erp5_ui_test_core
+erp5_ui_test
+erp5_web_renderjs_ui
+erp5_accounting
+erp5_test_result
\ No newline at end of file
diff --git a/bt5/erp5_officejs_afs_directory_ui_test/bt/description b/bt5/erp5_officejs_afs_directory_ui_test/bt/description
new file mode 100644
index 0000000000000000000000000000000000000000..a36597abb48519bad96a4f831d48323d8b6bc302
--- /dev/null
+++ b/bt5/erp5_officejs_afs_directory_ui_test/bt/description
@@ -0,0 +1 @@
+RenderJS based User Interface Tests for AFS free software publisher list.
\ No newline at end of file
diff --git a/bt5/erp5_officejs_afs_directory_ui_test/bt/license b/bt5/erp5_officejs_afs_directory_ui_test/bt/license
new file mode 100644
index 0000000000000000000000000000000000000000..3a3e12bcad97e4b3bdd6a8bb499fd23a4bcb0819
--- /dev/null
+++ b/bt5/erp5_officejs_afs_directory_ui_test/bt/license
@@ -0,0 +1 @@
+GPL
\ No newline at end of file
diff --git a/bt5/erp5_officejs_afs_directory_ui_test/bt/template_format_version b/bt5/erp5_officejs_afs_directory_ui_test/bt/template_format_version
new file mode 100644
index 0000000000000000000000000000000000000000..56a6051ca2b02b04ef92d5150c9ef600403cb1de
--- /dev/null
+++ b/bt5/erp5_officejs_afs_directory_ui_test/bt/template_format_version
@@ -0,0 +1 @@
+1
\ No newline at end of file
diff --git a/bt5/erp5_officejs_afs_directory_ui_test/bt/template_path_list b/bt5/erp5_officejs_afs_directory_ui_test/bt/template_path_list
new file mode 100644
index 0000000000000000000000000000000000000000..df6cb02e1fc916b19f80952dc81f5c80209e8c79
--- /dev/null
+++ b/bt5/erp5_officejs_afs_directory_ui_test/bt/template_path_list
@@ -0,0 +1,2 @@
+portal_tests/afs_ui_zuite
+portal_tests/afs_ui_zuite/**
\ No newline at end of file
diff --git a/bt5/erp5_officejs_afs_directory_ui_test/bt/title b/bt5/erp5_officejs_afs_directory_ui_test/bt/title
new file mode 100644
index 0000000000000000000000000000000000000000..5fafb6fd637cc93b353dd40f8efeb9a1ef1198f9
--- /dev/null
+++ b/bt5/erp5_officejs_afs_directory_ui_test/bt/title
@@ -0,0 +1 @@
+erp5_officejs_afs_directory_ui_test
\ No newline at end of file