diff --git a/bt5/erp5_ui_test/SkinTemplateItem/portal_skins/erp5_ui_test/user-extensions.js.xml b/bt5/erp5_ui_test/SkinTemplateItem/portal_skins/erp5_ui_test/user-extensions.js.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f4ad708f56c4d86c3a8584b1abe178961f5f784e
--- /dev/null
+++ b/bt5/erp5_ui_test/SkinTemplateItem/portal_skins/erp5_ui_test/user-extensions.js.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>OFS.Image</string>
+          <string>File</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_EtagSupport__etag</string> </key>
+            <value> <string>ts53257338.14</string> </value>
+        </item>
+        <item>
+            <key> <string>__ac_local_roles__</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>__name__</string> </key>
+            <value> <string>user-extensions.js</string> </value>
+        </item>
+        <item>
+            <key> <string>_dav_writelocks</string> </key>
+            <value>
+              <persistent> <string encoding="base64">AAAAAAAAAAI=</string> </persistent>
+            </value>
+        </item>
+        <item>
+            <key> <string>_owner</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>application/x-javascript</string> </value>
+        </item>
+        <item>
+            <key> <string>data</string> </key>
+            <value> <string>/**\n
+ * Selenium extensions for the ERP5 project\n
+ */\n
+\n
+\n
+/**\n
+ * Checks a the element referenced by `locator` is a float equals to `text`.\n
+ * Values are converted to float, to be format-independant (ie. 1 000 = 1000.0)\n
+ */\n
+Selenium.prototype.assertFloat = function(locator, text) {\n
+    var expectedValue = parseFloat(getText(this.page().findElement(locator)));\n
+    var actualValue = parseFloat(text);\n
+    \n
+    if (isNaN(expectedValue)) {\n
+        Assert.fail("Expected value "+ locator + " cannot be parsed as float");\n
+    }\n
+    Assert.matches(expectedValue.toString(), actualValue.toString());\n
+};\n
+</string> </value>
+        </item>
+        <item>
+            <key> <string>precondition</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>size</string> </key>
+            <value> <int>593</int> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+  <record id="2" aka="AAAAAAAAAAI=">
+    <pickle>
+      <tuple>
+        <tuple>
+          <string>Persistence</string>
+          <string>PersistentMapping</string>
+        </tuple>
+        <none/>
+      </tuple>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>_container</string> </key>
+            <value>
+              <dictionary/>
+            </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_ui_test/bt/change_log b/bt5/erp5_ui_test/bt/change_log
index 9e45e92c2e4a372c37eecc1a181eab616e7f7b84..602b8f87912508b657daf5282dc878d7edd592fa 100644
--- a/bt5/erp5_ui_test/bt/change_log
+++ b/bt5/erp5_ui_test/bt/change_log
@@ -1,3 +1,6 @@
+2006-07-19 jerome
+* add user-extension.js for Selenium extensions
+
 2006-07-18 yo
 * Add a test for listbox with dynamically generated domains.