diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_appcache.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_appcache.xml
index d21f9b7c4c01c897754bd0623105112a7fc28c93..c96ff7d8584cfcfdbe95ee26ecce24822766d914 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_appcache.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_appcache.xml
@@ -102,7 +102,7 @@
             <value> <string encoding="cdata"><![CDATA[
 
 CACHE MANIFEST\n
-# generated on 12 Nov 2015 10:44:00 +0000\n
+# generated on 12 Nov 2015 16:31:00 +0000\n
 # XXX + fonts\n
 # images/ajax-loader.gif\n
 CACHE:\n
@@ -334,7 +334,7 @@ NETWORK:\n
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>947.3415.22622.22289</string> </value>
+                <value> <string>947.3675.43345.17766</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -352,7 +352,7 @@ NETWORK:\n
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1447321457.28</float>
+                        <float>1447342304.46</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.xml
index 3f623c764c13ae5c1adbf891b9da0bca6601ccba..f477a3892c7aca76631f00b8db35b468193ed71b 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_form_list_js.xml
@@ -195,7 +195,7 @@
             return search_gadget.getContent();\n
           })\n
           .push(function (data) {\n
-            return gadget.redirect({command: \'change\', options: {extended_search: data.search, begin_from: undefined}});\n
+            return gadget.redirect({command: \'store_and_change\', options: {extended_search: data.search, begin_from: undefined}});\n
           });\n
       }\n
       // Listen to form submit\n
@@ -342,7 +342,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>946.44927.40202.16725</string> </value>
+                <value> <string>947.821.64587.50432</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -360,7 +360,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1445939450.54</float>
+                        <float>1447166009.61</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_js.xml
index 11b52af4f41f9cd6419850e58e6812eb6ceb4f98..85f690c93d3d8d736213833a86d3c87ce5cfc05a 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_js.xml
@@ -157,7 +157,7 @@
             i;\n
           for (i = 0; i < result.data.rows.length; i += 1) {\n
             result_list.push(RSVP.all([\n
-              gadget.getUrlFor({command: \'display\', options: {jio_key: result.data.rows[i].id}}),\n
+              gadget.getUrlFor({command: \'display_stored_state\', options: {jio_key: result.data.rows[i].id}}),\n
               result.data.rows[i].value.title || result.data.rows[i].id,\n
               result.data.rows[i].value.business_application_title\n
             ]));\n
@@ -373,7 +373,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>946.44927.40202.16725</string> </value>
+                <value> <string>947.821.64587.50432</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -391,7 +391,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1446803705.01</float>
+                        <float>1447323452.37</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_router_html.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_router_html.xml
index 5dee07bc653177071b58d41ddbba0fa005286cdf..c8d235fa03dc68b94484cd8447ff56376b4f7bc3 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_router_html.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_router_html.xml
@@ -130,6 +130,7 @@
   <body>\n
     <div data-gadget-url="gadget_jio.html" data-gadget-scope="jio_selection"></div>\n
     <div data-gadget-url="gadget_jio.html" data-gadget-scope="jio_navigation_history"></div>\n
+    <div data-gadget-url="gadget_jio.html" data-gadget-scope="jio_document_state"></div>\n
   </body>\n
 </html>\n
 
@@ -269,7 +270,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>946.44927.40202.16725</string> </value>
+                <value> <string>947.821.64587.50432</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -287,7 +288,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1446821965.62</float>
+                        <float>1447168631.99</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_router_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_router_js.xml
index ed4a08842dc8d8dc9b21294d91f6cb55f5e06c0c..216e282811ff47274b7fb1ce922fb597cdba1e60 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_router_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_router_js.xml
@@ -126,7 +126,9 @@
     PREFIX_COMMAND = "!",\n
     // PREFIX_ERROR = "?",\n
     COMMAND_DISPLAY_STATE = "display",\n
+    COMMAND_DISPLAY_STORED_STATE = "display_stored_state",\n
     COMMAND_CHANGE_STATE = "change",\n
+    COMMAND_STORE_AND_CHANGE_STATE = "store_and_change",\n
     COMMAND_INDEX_STATE = "index",\n
     COMMAND_SELECTION_PREVIOUS = "selection_previous",\n
     COMMAND_SELECTION_NEXT = "selection_next",\n
@@ -135,7 +137,9 @@
     REDIRECT_TIMEOUT = 5000,\n
     VALID_URL_COMMAND_DICT = {};\n
   VALID_URL_COMMAND_DICT[COMMAND_DISPLAY_STATE] = null;\n
+  VALID_URL_COMMAND_DICT[COMMAND_DISPLAY_STORED_STATE] = null;\n
   VALID_URL_COMMAND_DICT[COMMAND_CHANGE_STATE] = null;\n
+  VALID_URL_COMMAND_DICT[COMMAND_STORE_AND_CHANGE_STATE] = null;\n
   VALID_URL_COMMAND_DICT[COMMAND_INDEX_STATE] = null;\n
   VALID_URL_COMMAND_DICT[COMMAND_SELECTION_PREVIOUS] = null;\n
   VALID_URL_COMMAND_DICT[COMMAND_SELECTION_NEXT] = null;\n
@@ -300,9 +304,34 @@
     return addNavigationHistoryAndDisplay(gadget, jio_key, next_options);\n
   }\n
 \n
-  function execChangeCommand(previous_options, next_options) {\n
-    var key,\n
-      jio_key;\n
+  function execDisplayStoredStateCommand(gadget, next_options) {\n
+    // console.warn(command_options);\n
+    var jio_key = next_options.jio_key,\n
+      queue;\n
+    delete next_options.jio_key;\n
+\n
+    if (jio_key) {\n
+      queue = gadget.props.jio_state_gadget.get(jio_key)\n
+        .push(function (options) {\n
+          next_options = options;\n
+        }, function (error) {\n
+          if ((error instanceof jIO.util.jIOError) &&\n
+              (error.status_code === 404)) {\n
+            return;\n
+          }\n
+          throw error;\n
+        });\n
+    } else {\n
+      queue = new RSVP.Queue();\n
+    }\n
+    return queue\n
+      .push(function () {\n
+        return addNavigationHistoryAndDisplay(gadget, jio_key, next_options);\n
+      });\n
+  }\n
+\n
+  function calculateChangeOptions(previous_options, next_options) {\n
+    var key;\n
     for (key in previous_options) {\n
       if (previous_options.hasOwnProperty(key)) {\n
         if (!next_options.hasOwnProperty(key)) {\n
@@ -317,12 +346,44 @@
         }\n
       }\n
     }\n
-    jio_key = next_options.jio_key;\n
-    delete next_options.jio_key;\n
+    return next_options;\n
+  }\n
+\n
+  function execChangeCommand(previous_options, next_options) {\n
+    var options,\n
+      jio_key;\n
+    options = calculateChangeOptions(previous_options, next_options);\n
+\n
+    jio_key = options.jio_key;\n
+    delete options.jio_key;\n
     return synchronousChangeState(\n
-      getDisplayUrlFor(jio_key, next_options)\n
+      getDisplayUrlFor(jio_key, options)\n
     );\n
   }\n
+\n
+  function execStoreAndChangeCommand(gadget, previous_options, next_options) {\n
+    var options,\n
+      jio_key,\n
+      queue;\n
+    options = calculateChangeOptions(previous_options, next_options);\n
+\n
+    jio_key = options.jio_key;\n
+    delete options.jio_key;\n
+\n
+    if (jio_key) {\n
+      queue = gadget.props.jio_state_gadget.put(jio_key, options);\n
+    } else {\n
+      queue = new RSVP.Queue();\n
+    }\n
+\n
+\n
+    return queue\n
+      .push(function () {\n
+        return synchronousChangeState(\n
+          getDisplayUrlFor(jio_key, options)\n
+        );\n
+      });\n
+  }\n
 \n
   function execIndexCommand(gadget, previous_options, next_options) {\n
     var jio_key = next_options.jio_key,\n
@@ -598,12 +659,18 @@
     if (command_options.path === COMMAND_DISPLAY_STATE) {\n
       return execDisplayCommand(gadget, next_options);\n
     }\n
+    if (command_options.path === COMMAND_DISPLAY_STORED_STATE) {\n
+      return execDisplayStoredStateCommand(gadget, next_options);\n
+    }\n
     if (command_options.path === COMMAND_INDEX_STATE) {\n
       return execIndexCommand(gadget, previous_options, next_options);\n
     }\n
     if (command_options.path === COMMAND_CHANGE_STATE) {\n
       return execChangeCommand(previous_options, next_options);\n
     }\n
+    if (command_options.path === COMMAND_STORE_AND_CHANGE_STATE) {\n
+      return execStoreAndChangeCommand(gadget, previous_options, next_options);\n
+    }\n
     if (command_options.path === COMMAND_SELECTION_NEXT) {\n
       return execSelectionNextCommand(gadget, previous_options, next_options);\n
     }\n
@@ -657,7 +724,6 @@
       });\n
 \n
     }\n
-\n
     var result = loopEventListener(window, \'hashchange\', false,\n
                                    extractHashAndDispatch),\n
       event = document.createEvent("Event");\n
@@ -703,6 +769,17 @@
           });\n
         });\n
     })\n
+\n
+    .ready(function (gadget) {\n
+      return gadget.getDeclaredGadget("jio_document_state")\n
+        .push(function (jio_gadget) {\n
+          gadget.props.jio_state_gadget = jio_gadget;\n
+          return jio_gadget.createJio({\n
+            type: "indexeddb",\n
+            database: "document_state"\n
+          });\n
+        });\n
+    })\n
 \n
     .declareMethod(\'getCommandUrlFor\', function (options) {\n
       var command = options.command,\n
@@ -913,7 +990,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>947.784.43671.16128</string> </value>
+                <value> <string>947.3470.27048.19353</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -931,7 +1008,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1447162652.41</float>
+                        <float>1447323762.19</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListSearchAction.xml b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListSearchAction.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8b2558141f10937e796557e52c37f5d7402ecbc5
--- /dev/null
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListSearchAction.xml
@@ -0,0 +1,127 @@
+<?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>_text</string> </key>
+            <value> <unicode encoding="cdata"><![CDATA[
+
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+      xmlns:metal="http://xml.zope.org/namespaces/metal">\n
+<head>\n
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n
+<title>Test Form List Search Action</title>\n
+</head>\n
+<body>\n
+<table cellpadding="1" cellspacing="1" border="1">\n
+<thead>\n
+<tr><td rowspan="1" colspan="3">Test Default Module View</td></tr>\n
+</thead><tbody>\n
+<tal:block metal:use-macro="here/PTZuite_CommonTemplate/macros/init" />\n
+\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/web_site_module/renderjs_runner/#/foo_module</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- Wait for gadget to be loaded -->\n
+<tr>\n
+  <td>waitForElementPresent</td>\n
+  <td>//div[@data-gadget-url=\'${base_url}/web_site_module/renderjs_runner/gadget_erp5_pt_form_list.html\']</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Foos</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- Page has a search field -->\n
+<tr>\n
+  <td>waitForElementPresent</td>\n
+  <td>//div[@data-gadget-scope=\'m\']//div[@data-gadget-scope=\'erp5_searchfield\']//input[@type=\'text\' and @name=\'search\']</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>type</td>\n
+  <td>search</td>\n
+  <td>foobar</td>\n
+</tr>\n
+<tr>\n
+  <td>click</td>\n
+  <td>//div[@data-gadget-scope=\'erp5_searchfield\']//input[@value=\'header-submit\' and @type=\'submit\']</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>pause</td>\n
+  <td>1000</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<tr>\n
+  <td>waitForElementPresent</td>\n
+  <td>//div[@data-gadget-scope=\'m\']//div[@data-gadget-scope=\'erp5_searchfield\']//input[@type=\'text\' and @name=\'search\' and @value=\'foobar\']</td>\n
+  <td></td>\n
+</tr>\n
+\n
+</tbody></table>\n
+</body>\n
+</html>
+
+]]></unicode> </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>testFormListSearchAction</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_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageFrontModuleList.xml b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageFrontModuleList.xml
index 369e6a82e56d976f475cd86bb8118de79fe9f777..0ed23666619e4284199a15914ab0c49d0150a262 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageFrontModuleList.xml
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageFrontModuleList.xml
@@ -70,12 +70,12 @@
 <!-- Generate links to module -->\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//div[@data-gadget-scope=\'m\']//a[text()=\'Bars\' and contains(@href, \'#!display\') and contains(@href, \'n.jio_key=bar_module\')]</td>\n
+  <td>//div[@data-gadget-scope=\'m\']//a[text()=\'Bars\' and contains(@href, \'#!display_stored_state\') and contains(@href, \'n.jio_key=bar_module\')]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
   <td>assertElementPresent</td>\n
-  <td>//div[@data-gadget-scope=\'m\']//a[text()=\'Foos\' and contains(@href, \'#!display\') and contains(@href, \'n.jio_key=foo_module\')]</td>\n
+  <td>//div[@data-gadget-scope=\'m\']//a[text()=\'Foos\' and contains(@href, \'#!display_stored_state\') and contains(@href, \'n.jio_key=foo_module\')]</td>\n
   <td></td>\n
 </tr>\n
 \n
@@ -83,7 +83,7 @@
 <!-- Header has a link to the previous history entry -->\n
 <tr>\n
   <td>click</td>\n
-  <td>//div[@data-gadget-scope=\'m\']//a[text()=\'Foos\' and contains(@href, \'#!display\') and contains(@href, \'n.jio_key=foo_module\')]</td>\n
+  <td>//div[@data-gadget-scope=\'m\']//a[text()=\'Foos\' and contains(@href, \'#!display_stored_state\') and contains(@href, \'n.jio_key=foo_module\')]</td>\n
   <td></td>\n
 </tr>\n
 <tr>\n
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandDisplayStoredStateJumpToLatestDocumentContext.xml b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandDisplayStoredStateJumpToLatestDocumentContext.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b4518799ed620e4a5ae8b626abc691083a7e59cc
--- /dev/null
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandDisplayStoredStateJumpToLatestDocumentContext.xml
@@ -0,0 +1,175 @@
+<?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>_text</string> </key>
+            <value> <unicode encoding="cdata"><![CDATA[
+
+<html xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+      xmlns:metal="http://xml.zope.org/namespaces/metal">\n
+<head>\n
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n
+<title>Test Display Stored State</title>\n
+</head>\n
+<body>\n
+<table cellpadding="1" cellspacing="1" border="1">\n
+<thead>\n
+<tr><td rowspan="1" colspan="3">Test Default Module View</td></tr>\n
+</thead><tbody>\n
+<tal:block metal:use-macro="here/PTZuite_CommonTemplate/macros/init" />\n
+\n
+<tr>\n
+  <td>open</td>\n
+  <td>${base_url}/web_site_module/renderjs_runner/#/foo_module</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- Wait for gadget to be loaded -->\n
+<tr>\n
+  <td>waitForElementPresent</td>\n
+  <td>//div[@data-gadget-url=\'${base_url}/web_site_module/renderjs_runner/gadget_erp5_pt_form_list.html\']</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- Enter a search query to store the state -->\n
+<tr>\n
+  <td>type</td>\n
+  <td>search</td>\n
+  <td>title</td>\n
+</tr>\n
+<tr>\n
+  <td>click</td>\n
+  <td>//div[@data-gadget-scope=\'erp5_searchfield\']//input[@value=\'header-submit\' and @type=\'submit\']</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>pause</td>\n
+  <td>1000</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<tr>\n
+  <td>waitForTextPresent</td>\n
+  <td>Title 1</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- Go to the module page -->\n
+<tr>\n
+  <td>click</td>\n
+  <td>//div[@data-gadget-scope=\'header\']//button[text()=\'Menu\' and @type=\'submit\']</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForElementPresent</td>\n
+  <td>//div[@data-gadget-scope=\'panel\']//div[contains(@class, \'ui-panel-open\')]</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>click</td>\n
+  <td>//div[@data-gadget-scope=\'panel\']//a[text()=\'Modules\']</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- Wait for gadget to be loaded -->\n
+<tr>\n
+  <td>waitForElementPresent</td>\n
+  <td>//div[@data-gadget-url=\'${base_url}/web_site_module/renderjs_runner/gadget_erp5_page_front.html\']</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- Go back to foo module -->\n
+<tr>\n
+  <td>waitForElementPresent</td>\n
+  <td>//h3[@data-i18n=\'Other\']</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>click</td>\n
+  <td>//h3[@data-i18n=\'Other\']</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>waitForElementPresent</td>\n
+  <td>//div[@data-gadget-scope=\'m\']//a[@data-i18n=\'Foos\']</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>click</td>\n
+  <td>//div[@data-gadget-scope=\'m\']//a[@data-i18n=\'Foos\']</td>\n
+  <td></td>\n
+</tr>\n
+\n
+<!-- Wait for gadget to be loaded -->\n
+<tr>\n
+  <td>waitForElementPresent</td>\n
+  <td>//div[@data-gadget-url=\'${base_url}/web_site_module/renderjs_runner/gadget_erp5_pt_form_list.html\']</td>\n
+  <td></td>\n
+</tr>\n
+<tr>\n
+  <td>assertElementPresent</td>\n
+  <td>//div[@data-gadget-scope=\'erp5_searchfield\']//input[@value=\'title\' and @type=\'text\' and @name=\'search\']</td>\n
+  <td></td>\n
+</tr>\n
+\n
+</tbody></table>\n
+</body>\n
+</html>
+
+]]></unicode> </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>testCommandDisplayStoredStateJumpToLatestDocumentContext</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>