Index: src/test/it/org/xwiki/it/ui/framework/elements/LiveTableElement.java
===================================================================
--- src/test/it/org/xwiki/it/ui/framework/elements/LiveTableElement.java	(revision 31128)
+++ src/test/it/org/xwiki/it/ui/framework/elements/LiveTableElement.java	(working copy)
@@ -88,9 +88,10 @@
 
     public boolean hasColumn(String columnTitle)
     {
-        List<WebElement> elements = getDriver().findElements(By.xpath(
-            "//th[contains(@class, 'xwiki-livetable-display-header-text') and normalize-space(text()) = '"
-            + columnTitle + "']"));
+        List<WebElement> elements =
+            getDriver().findElements(
+                By.xpath("//th[contains(@class, 'xwiki-livetable-display-header-text') and normalize-space(.) = '"
+                    + columnTitle + "']"));
         return elements.size() > 0;
     }
 
Index: src/test/it/org/xwiki/it/ui/xe/DocumentIndexAttachmentsTabFilterTest.java
===================================================================
--- src/test/it/org/xwiki/it/ui/xe/DocumentIndexAttachmentsTabFilterTest.java	(revision 0)
+++ src/test/it/org/xwiki/it/ui/xe/DocumentIndexAttachmentsTabFilterTest.java	(revision 0)
@@ -0,0 +1,71 @@
+/*
+ * See the NOTICE file distributed with this work for additional
+ * information regarding copyright ownership.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.xwiki.it.ui.xe;
+
+import static org.junit.Assert.fail;
+
+import java.util.List;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebElement;
+import org.xwiki.it.ui.framework.AbstractAdminAuthenticatedTest;
+import org.xwiki.it.ui.framework.elements.LiveTableElement;
+import org.xwiki.it.ui.xe.elements.AllDocsPage;
+
+public class DocumentIndexAttachmentsTabFilterTest extends AbstractAdminAuthenticatedTest
+{
+
+    private final String FILTER_STRING = "an";
+
+    private final String PAGE_COLUMN_ID = "xwiki-livetable-allattachments-filter-2";
+
+    // This test is against XWiki Enterprise XE-701 http://jira.xwiki.org/jira/browse/XE-701 (fixed in 2.5M1)
+    // WARN: calling isReady() and waitUntilReady() from LiveTableElement.java inside this class fails.
+    // Used example from JIRA issue
+    @Test
+    public void testAttachmentsPane()
+    {
+        AllDocsPage docsPage = new AllDocsPage();
+        docsPage.gotoPage();
+        LiveTableElement liveTable = docsPage.clickAttachmentsTab();
+        // Here we test if all the Columns are displayed
+        Assert.assertTrue("No Filename column found", liveTable.hasColumn("Filename"));
+        Assert.assertTrue("No Space column found", liveTable.hasColumn("Space"));
+        Assert.assertTrue("No Date column found", liveTable.hasColumn("Date"));
+        Assert.assertTrue("No Author column found", liveTable.hasColumn("Author"));
+        Assert.assertTrue("No Type column found", liveTable.hasColumn("Type"));
+        Assert.assertTrue("No Page column found", liveTable.hasColumn("Page"));
+
+        // Here we filter the livetable
+        liveTable.filterColumn(PAGE_COLUMN_ID, FILTER_STRING);
+        List<WebElement> pageResults = getDriver().findElements(By.xpath("//td[@class='pagename']"));
+
+        // Here we get the results that remain after applying the filter
+        // and we check if there is a result that doesn't contain the filter, the test will fail
+        for (int i = 0; i < pageResults.size(); i++) {
+            System.out.println(pageResults.get(i).getText());
+            if (pageResults.get(i).getText().toLowerCase().contains("an") != true) {
+                fail("This " + pageResults.get(i).getText() + " should not be here !");
+            }
+        }
+    }
+}

Property changes on: src/test/it/org/xwiki/it/ui/xe/DocumentIndexAttachmentsTabFilterTest.java
___________________________________________________________________
Added: svn:executable
   + *

Index: src/test/it/org/xwiki/it/ui/xe/elements/AllDocsPage.java
===================================================================
--- src/test/it/org/xwiki/it/ui/xe/elements/AllDocsPage.java	(revision 31128)
+++ src/test/it/org/xwiki/it/ui/xe/elements/AllDocsPage.java	(working copy)
@@ -26,7 +26,7 @@
 
 /**
  * Represents the actions possible on the AllDocs Page.
- *
+ * 
  * @version $Id$
  * @since 2.4M2
  */
@@ -35,6 +35,9 @@
     @FindBy(xpath = "//li[@id='xwikiindex']/a")
     private WebElement indexTab;
 
+    @FindBy(xpath = "//li[@id='xwikiattachments']/a")
+    private WebElement attachmentsTab;
+
     public void gotoPage()
     {
         getUtil().gotoPage("Main", "AllDocs");
@@ -52,4 +55,17 @@
         lt.waitUntilReady();
         return lt;
     }
+
+    public LiveTableElement clickAttachmentsTab()
+    {
+        this.attachmentsTab.click();
+        LiveTableElement lt = new LiveTableElement("allattachments");
+
+        // Since there's a risk that the livetbale has finished dislaying before the listener
+        // (defined in LiveTableElement's constructor) has been set up, we force a livetable refresh.
+        executeJavascript("livetable.clearCache();livetable.showRows(livetable.currentOffset, livetable.limit);");
+
+        lt.waitUntilReady();
+        return lt;
+    }
 }
