diff --git a/src/main/java/org/olat/ims/cp/ui/CPContentController.java b/src/main/java/org/olat/ims/cp/ui/CPContentController.java
index 582db030a935a0ebc3bffd9252e560ec5acca11f..777fa4dfa26e1ffe8ff64d11201bc8d02997ebe5 100644
--- a/src/main/java/org/olat/ims/cp/ui/CPContentController.java
+++ b/src/main/java/org/olat/ims/cp/ui/CPContentController.java
@@ -108,12 +108,14 @@ public class CPContentController extends BasicController {
 		editMetadataLink = LinkFactory.createToolLink("contentcontroller.editlink", "contentcontroller.editlink",
 				translate("contentcontroller.editlink_title"), this);
 		editMetadataLink.setIconLeftCSS("o_icon o_icon-lg o_icon_edit");
+		editMetadataLink.setElementCssClass("o_sel_cp_edit_metadata");
 		editMetadataLink.setTooltip(translate("contentcontroller.editlink_title"));
 		toolbar.addTool(editMetadataLink, Align.right);
 
 		previewLink = LinkFactory.createToolLink("contentcontroller.previewlink", "contentcontroller.previewlink",
 				translate("contentcontroller.previewlink_title"), this);
 		previewLink.setIconLeftCSS("o_icon o_icon-lg o_icon_preview");
+		previewLink.setElementCssClass("o_sel_cp_preview");
 		previewLink.setTooltip(translate("contentcontroller.previewlink_title"));
 		toolbar.addTool(previewLink, Align.right);
 
diff --git a/src/main/java/org/olat/ims/cp/ui/CPFileImportController.java b/src/main/java/org/olat/ims/cp/ui/CPFileImportController.java
index edc3bdbbce65a560b7fe325e5ce51d69d616a46e..bbab7ac0d017522104b6eac0b5cc06c52121ffc5 100644
--- a/src/main/java/org/olat/ims/cp/ui/CPFileImportController.java
+++ b/src/main/java/org/olat/ims/cp/ui/CPFileImportController.java
@@ -111,7 +111,7 @@ public class CPFileImportController extends FormBasicController {
 	 */
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
-		setFormTitle("cpfileuploadcontroller.form.title");
+		formLayout.setElementCssClass("o_sel_cp_import");
 		setFormDescription("cpfileuploadcontroller.form.description");
 
 		file = uifactory.addFileElement(getWindowControl(), "file", flc);
diff --git a/src/main/java/org/olat/ims/cp/ui/CPMetadataEditController.java b/src/main/java/org/olat/ims/cp/ui/CPMetadataEditController.java
index a0b0cdc1076084270c6ba28ce99e4e849a4f14a2..5973d6a810a56175fe88687a82888f909860d748 100644
--- a/src/main/java/org/olat/ims/cp/ui/CPMetadataEditController.java
+++ b/src/main/java/org/olat/ims/cp/ui/CPMetadataEditController.java
@@ -66,9 +66,11 @@ public class CPMetadataEditController extends FormBasicController {
 	
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
+		formLayout.setElementCssClass("o_sel_cp_metadata");
 		// title-field
 		String titleString = page.getTitle();
 		title = uifactory.addTextElement("title", "cpmd.flexi.title", 256, titleString, formLayout);
+		title.setElementCssClass("o_sel_cp_title");
 		title.setDisplaySize(32);
 		title.setMandatory(true);
 		title.setNotEmptyCheck("cpmd.flexi.mustbefilled");
diff --git a/src/main/java/org/olat/ims/cp/ui/CPTreeController.java b/src/main/java/org/olat/ims/cp/ui/CPTreeController.java
index 06896ab7e0aded4e5aa1fcd298fd5052549807a1..301f20b25c525cf372d9225b12c24db8739cecdc 100644
--- a/src/main/java/org/olat/ims/cp/ui/CPTreeController.java
+++ b/src/main/java/org/olat/ims/cp/ui/CPTreeController.java
@@ -33,7 +33,6 @@ import org.dom4j.Element;
 import org.dom4j.tree.DefaultElement;
 import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.Component;
-import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
 import org.olat.core.gui.components.link.Link;
 import org.olat.core.gui.components.link.LinkFactory;
 import org.olat.core.gui.components.stack.TooledStackedPanel;
@@ -112,24 +111,28 @@ public class CPTreeController extends BasicController {
 		importLink = LinkFactory.createToolLink("cptreecontroller.importlink", "cptreecontroller.importlink",
 				translate("cptreecontroller.importlink_title"), this);
 		importLink.setTooltip(translate("cptreecontroller.importlink_title"));
+		importLink.setElementCssClass("o_sel_cp_import_link");
 		importLink.setIconLeftCSS("o_icon o_icon-lg o_icon_import");
 		toolbar.addTool(importLink, Align.left);
 
 		newLink = LinkFactory.createToolLink("cptreecontroller.newlink", "cptreecontroller.newlink",
 				translate("cptreecontroller.newlink_title"), this);
 		newLink.setTooltip(translate("cptreecontroller.newlink_title"));
+		newLink.setElementCssClass("o_sel_cp_new_link");
 		newLink.setIconLeftCSS("o_icon o_icon-lg o_icon_add");
 		toolbar.addTool(newLink, Align.left);
 
 		copyLink = LinkFactory.createToolLink("cptreecontroller.copylink", "cptreecontroller.copylink",
 				translate("cptreecontroller.copylink_title"), this);
 		copyLink.setTooltip(translate("cptreecontroller.copylink_title"));
+		copyLink.setElementCssClass("o_sel_cp_copy_link");
 		copyLink.setIconLeftCSS("o_icon o_icon-lg o_icon_copy");
 		toolbar.addTool(copyLink, Align.left);
 
 		deleteLink = LinkFactory.createToolLink("cptreecontroller.deletelink", "cptreecontroller.deletelink",
 				translate("cptreecontroller.deletelink_title"), this);
 		deleteLink.setTooltip(translate("cptreecontroller.deletelink_title"));
+		deleteLink.setElementCssClass("o_sel_cp_delete_link");
 		deleteLink.setIconLeftCSS("o_icon o_icon-lg o_icon_delete_item");
 		toolbar.addTool(deleteLink, Align.left);
 	}
@@ -319,8 +322,12 @@ public class CPTreeController extends BasicController {
 	protected void event(UserRequest ureq, Component source, Event event) {
 		if (source == importLink) {
 			uploadCtr = new CPFileImportController(ureq, getWindowControl(), cp, currentPage);
-			activateModalDialog(uploadCtr);
-
+			listenTo(uploadCtr);
+			String title = translate("cpfileuploadcontroller.form.title");
+			cmc = new CloseableModalController(getWindowControl(), translate("close"),
+					uploadCtr.getInitialComponent(), true, title);
+			listenTo(cmc);
+			cmc.activate();
 		} else if (source == newLink) {
 			fireEvent(ureq, new Event("New Page"));
 
@@ -477,15 +484,4 @@ public class CPTreeController extends BasicController {
 	protected void doDispose() {
 		contentVC = null;
 	}
-
-	/**
-	 * @param controller The <code>FormBasicController</code> to be displayed in
-	 *          the modal dialog.
-	 */
-	private void activateModalDialog(FormBasicController controller) {
-		listenTo(controller);
-		cmc = new CloseableModalController(getWindowControl(), translate("close"), controller.getInitialComponent());
-		listenTo(cmc);
-		cmc.activate();
-	}
 }
diff --git a/src/main/java/org/olat/modules/fo/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/fo/_i18n/LocalStrings_en.properties
index 0f5f5d943e2790d71acb0c00d8faad3753708d6d..0f2fe39bc5a3e4e8265fcb48e6a57311d05a6bb4 100644
--- a/src/main/java/org/olat/modules/fo/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/fo/_i18n/LocalStrings_en.properties
@@ -119,7 +119,8 @@ table.user.lastname=Name
 table.user.replies=Replies
 table.user.threads=Threads
 table.userfriendlyname=Author
-use.pseudonym.label=Use a pseudonym
+use.pseudonym=Posted as
+use.pseudonym.label=Use alias
 viewswitch.flatview=all (flat)
 viewswitch.marked=marked
 viewswitch.messageview=one
diff --git a/src/test/java/org/olat/selenium/CourseTest.java b/src/test/java/org/olat/selenium/CourseTest.java
index 06567945c8b3f0136f94eea845707f2d60e6e9f4..7df3bc831b3861c7bc9d691c0aa857c55f6cc76f 100644
--- a/src/test/java/org/olat/selenium/CourseTest.java
+++ b/src/test/java/org/olat/selenium/CourseTest.java
@@ -19,6 +19,7 @@
  */
 package org.olat.selenium;
 
+import java.io.File;
 import java.io.IOException;
 import java.net.URISyntaxException;
 import java.net.URL;
@@ -60,12 +61,14 @@ import org.olat.selenium.page.course.PublisherPageFragment.Access;
 import org.olat.selenium.page.forum.ForumPage;
 import org.olat.selenium.page.graphene.OOGraphene;
 import org.olat.selenium.page.repository.AuthoringEnvPage;
+import org.olat.selenium.page.repository.CPPage;
 import org.olat.selenium.page.repository.FeedPage;
 import org.olat.selenium.page.repository.RepositoryAccessPage;
 import org.olat.selenium.page.repository.AuthoringEnvPage.ResourceType;
 import org.olat.selenium.page.repository.RepositoryAccessPage.UserAccess;
 import org.olat.selenium.page.repository.RepositoryEditDescriptionPage;
 import org.olat.test.ArquillianDeployments;
+import org.olat.test.JunitTestHelper;
 import org.olat.test.rest.UserRestClient;
 import org.olat.user.restapi.UserVO;
 import org.openqa.selenium.By;
@@ -1515,4 +1518,92 @@ public class CourseTest {
 			.assertWithTitle(foTitle.substring(0, 20))
 			.assertWithTitle(infoTitle.substring(0, 20));
 	}
+	
+	/**
+	 * An author creates a CP, changes the name of a page, import 
+	 * an other page, create two pages and delete one, import an
+	 * image...<br>
+	 * A user come to see the CP, check that the deleted page is
+	 * really deleted and that the "Small HTML page" exists and
+	 * can be read.
+	 * 
+	 * @param loginPage
+	 * @throws IOException
+	 * @throws URISyntaxException
+	 */
+	@Test
+	@RunAsClient
+	public void createContentPackage(@InitialPage LoginPage loginPage,
+			@Drone @User WebDriver ryomouBrowser)
+			throws IOException, URISyntaxException {
+		UserVO author = new UserRestClient(deploymentUrl).createAuthor();
+		UserVO ryomou = new UserRestClient(deploymentUrl).createRandomUser("Ryomou");
+		loginPage.loginAs(author.getLogin(), author.getPassword());
+		
+		//create a CP
+		String cpTitle = "CP " + UUID.randomUUID();
+		navBar
+			.openAuthoringEnvironment()
+			.createCP(cpTitle)
+			.clickToolbarBack();
+		
+		String firstPage = "Page 1 " + UUID.randomUUID();
+		String secondPage = "Seite 2 " + UUID.randomUUID();
+		String thirdPage = "Feuillet 3 " + UUID.randomUUID();
+		String deletedPage = "To delete 4 " + UUID.randomUUID();
+		
+		URL pageUrl = JunitTestHelper.class.getResource("file_resources/page.html");
+		File pageFile = new File(pageUrl.toURI());
+		URL imageUrl = JunitTestHelper.class.getResource("file_resources/IMG_1482.JPG");
+		File imageFile = new File(imageUrl.toURI());
+		
+		CPPage cpPage = new CPPage(browser);
+		cpPage
+			.openEditor()
+			//rename page
+			.editMetadata(firstPage)
+			.clickRoot()
+			.newPage(secondPage)
+			.clickRoot()
+			.newPage(deletedPage)
+			.clickRoot()
+			//import a page and change the title
+			.importPage(pageFile)
+			.fillMetadataForm(thirdPage)
+			//import an image without changing the title
+			.importPage(imageFile)
+			.closeMetadataForm()
+			//delete page
+			.selectPage(deletedPage)
+			.deletePage()
+			//close the editor
+			.clickToolbarBack();
+		
+		//set access to registered members
+		cpPage
+			.accessConfiguration()
+			.setUserAccess(UserAccess.registred)
+			.clickToolbarBack();
+		
+		//a user search the content package
+		LoginPage ryomouLoginPage = LoginPage.getLoginPage(ryomouBrowser, deploymentUrl);
+		ryomouLoginPage
+			.loginAs(ryomou.getLogin(), ryomou.getPassword())
+			.resume();
+		NavigationPage ryomouNavBar = new NavigationPage(ryomouBrowser);
+		ryomouNavBar
+			.openMyCourses()
+			.openSearch()
+			.extendedSearch(cpTitle)
+			.select(cpTitle)
+			.start();
+		
+		CPPage ryomouPage = new CPPage(ryomouBrowser);
+		ryomouPage
+			.assertPageDeleted(deletedPage)
+			.assertInIFrame(By.xpath("//h1[text()[contains(.,'Small HTML page')]]"))
+			.selectPage(secondPage)
+			.selectPage(firstPage)
+			.assertInIFrame(By.xpath("//h2[text()[contains(.,'Lorem Ipsum')]]"));
+	}
 }
diff --git a/src/test/java/org/olat/selenium/page/core/CalendarPage.java b/src/test/java/org/olat/selenium/page/core/CalendarPage.java
index 247c8fe1d3955dbd355861cb5c1558023d4c3366..d328e96c82ed4cb4f7535d1a5105013d3a3f55bf 100644
--- a/src/test/java/org/olat/selenium/page/core/CalendarPage.java
+++ b/src/test/java/org/olat/selenium/page/core/CalendarPage.java
@@ -36,6 +36,8 @@ import org.openqa.selenium.WebElement;
  */
 public class CalendarPage {
 	
+	public static final By calendarToolbatBy = By.className("o_cal_toptoolbar");
+	
 	@Drone
 	private WebDriver browser;
 	
@@ -47,8 +49,13 @@ public class CalendarPage {
 		this.browser = browser;
 	}
 	
+	/**
+	 * Don't forget that the calendar is a javascript application. You need
+	 * to wait until scripts, css and data are loaded before asserting.
+	 * 
+	 * @return The calendar page
+	 */
 	public CalendarPage assertOnCalendar() {
-		By calendarToolbatBy = By.className("o_cal_toptoolbar");
 		List<WebElement> calendarToolbarsEl = browser.findElements(calendarToolbatBy);
 		Assert.assertFalse(calendarToolbarsEl.isEmpty());
 		return this;
diff --git a/src/test/java/org/olat/selenium/page/group/GroupPage.java b/src/test/java/org/olat/selenium/page/group/GroupPage.java
index 8416c84687bf3d8729e34080dfab358ddb5c8247..3f170291be11368987f1a6ba2d94372ceec3c7a2 100644
--- a/src/test/java/org/olat/selenium/page/group/GroupPage.java
+++ b/src/test/java/org/olat/selenium/page/group/GroupPage.java
@@ -128,6 +128,7 @@ public class GroupPage {
 	
 	public CalendarPage openCalendar() {
 		openMenuItem(calendarTool);
+		OOGraphene.waitElement(CalendarPage.calendarToolbatBy, 2, browser);
 		return new CalendarPage(browser);
 	}
 	
diff --git a/src/test/java/org/olat/selenium/page/repository/CPEditorPage.java b/src/test/java/org/olat/selenium/page/repository/CPEditorPage.java
new file mode 100644
index 0000000000000000000000000000000000000000..e887884547b8d0a4a19334c7ed07897006e538b2
--- /dev/null
+++ b/src/test/java/org/olat/selenium/page/repository/CPEditorPage.java
@@ -0,0 +1,147 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.selenium.page.repository;
+
+import java.io.File;
+
+import org.junit.Assert;
+import org.olat.selenium.page.NavigationPage;
+import org.olat.selenium.page.graphene.OOGraphene;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+
+/**
+ * 
+ * Initial date: 04.12.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class CPEditorPage {
+	
+	private WebDriver browser;
+	
+	public CPEditorPage(WebDriver browser) {
+		this.browser = browser;
+	}
+	
+	public CPEditorPage clickRoot() {
+		By rootBy = By.cssSelector("ul.o_tree_l0 span.o_tree_link.o_tree_l0 a");
+		browser.findElement(rootBy).click();
+		OOGraphene.waitBusy(browser);
+		return this;
+	}
+	
+	public CPEditorPage selectPage(String title) {
+		By pageBy = By.xpath("//a[span[text()[contains(.,'" + title + "')]]]");
+		browser.findElement(pageBy).click();
+		OOGraphene.waitBusy(browser);
+		return this;
+	}
+	
+	public CPEditorPage deletePage() {
+		By deleteBy = By.cssSelector("a.o_sel_cp_delete_link");
+		browser.findElement(deleteBy).click();
+		OOGraphene.waitBusy(browser);
+		
+		//confirm
+		By popup = By.cssSelector("div.modal-dialog");
+		OOGraphene.waitElement(popup, 2, browser);
+		By deleteMenuAndFileBy = By.xpath("//div[contains(@class,'modal-dialog')]//a[contains(@href,'link_0')]");
+		browser.findElement(deleteMenuAndFileBy).click();
+		OOGraphene.waitBusy(browser);	
+		return this;
+	}
+	
+	public CPEditorPage newPage(String title) {
+		By newBy = By.cssSelector("a.o_sel_cp_new_link");
+		browser.findElement(newBy).click();
+		OOGraphene.waitBusy(browser);
+		return fillMetadataForm(title);
+	}
+	
+	public CPEditorPage editMetadata(String title) {
+		By metadataBy = By.cssSelector("a.o_sel_cp_edit_metadata");
+		browser.findElement(metadataBy).click();
+		OOGraphene.waitBusy(browser);
+		return fillMetadataForm(title);
+	}
+	
+	public CPEditorPage importPage(File page) {
+		By metadataBy = By.cssSelector("a.o_sel_cp_import_link");
+		browser.findElement(metadataBy).click();
+		OOGraphene.waitBusy(browser);
+		
+		//wait popup
+		By metadataPopupBy = By.cssSelector("fieldset.o_sel_cp_import");
+		OOGraphene.waitElement(metadataPopupBy, 2, browser);
+		
+		By inputBy = By.cssSelector("fieldset.o_sel_cp_import .o_fileinput input[type='file']");
+		OOGraphene.uploadFile(inputBy, page, browser);
+		OOGraphene.waitingALittleLonger();//wait event
+		
+		//ok save
+		By saveBy = By.cssSelector("fieldset.o_sel_cp_import button.btn-primary");
+		browser.findElement(saveBy).click();
+		OOGraphene.waitBusy(browser);
+		return this;
+	}
+	
+	public CPEditorPage closeMetadataForm() {
+		//wait popup
+		By metadataPopupBy = By.cssSelector("fieldset.o_sel_cp_metadata");
+		OOGraphene.waitElement(metadataPopupBy, 2, browser);
+		
+		//ok save
+		By saveBy = By.cssSelector("fieldset.o_sel_cp_metadata button.btn-primary");
+		browser.findElement(saveBy).click();
+		OOGraphene.waitBusy(browser);
+		return this;
+	}
+		
+	public CPEditorPage fillMetadataForm(String title) {
+		//wait popup
+		By metadataPopupBy = By.cssSelector("fieldset.o_sel_cp_metadata");
+		OOGraphene.waitElement(metadataPopupBy, 2, browser);
+		
+		//write title
+		By titleBy = By.cssSelector(".o_sel_cp_title input[type='text']");
+		WebElement titleEl = browser.findElement(titleBy);
+		titleEl.clear();
+		titleEl.sendKeys(title);
+		
+		//ok save
+		By saveBy = By.cssSelector("fieldset.o_sel_cp_metadata button.btn-primary");
+		browser.findElement(saveBy).click();
+		OOGraphene.waitBusy(browser);
+		return this;
+	}
+	
+	public CPPage clickToolbarBack() {
+		OOGraphene.closeBlueMessageWindow(browser);
+		browser.findElement(NavigationPage.toolbarBackBy).click();
+		OOGraphene.waitBusy(browser);
+		
+		WebElement main = browser.findElement(By.id("o_main_wrapper"));
+		Assert.assertTrue(main.isDisplayed());
+		return new CPPage(browser);
+	}
+
+}
diff --git a/src/test/java/org/olat/selenium/page/repository/CPPage.java b/src/test/java/org/olat/selenium/page/repository/CPPage.java
new file mode 100644
index 0000000000000000000000000000000000000000..42b7269ff2c48cda0ad83d2fd90363b256996816
--- /dev/null
+++ b/src/test/java/org/olat/selenium/page/repository/CPPage.java
@@ -0,0 +1,124 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.selenium.page.repository;
+
+import java.util.List;
+
+import org.jboss.arquillian.graphene.Graphene;
+import org.junit.Assert;
+import org.olat.selenium.page.graphene.OOGraphene;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+
+/**
+ * 
+ * Initial date: 04.12.2015<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class CPPage {
+	
+	private final By toolsMenu = By.cssSelector("ul.o_sel_repository_tools");
+	private static final By settingsMenu = By.cssSelector("ul.o_sel_course_settings");
+	
+	private WebDriver browser;
+	
+	public CPPage(WebDriver browser) {
+		this.browser = browser;
+	}
+	
+	public CPPage assertInIFrame(By by) {
+		By iframeBy = By.xpath("//iframe");
+		List<WebElement> iframes = browser.findElements(iframeBy);
+		browser = browser.switchTo().frame(iframes.get(0));
+		
+		List<WebElement> elements = browser.findElements(by);
+		Assert.assertFalse(elements.isEmpty());
+		
+		browser = browser.switchTo().defaultContent();
+		return this;
+	}
+	
+	public CPPage assertPageDeleted(String title) {
+		By pageBy = By.xpath("//a[@title='" + title + "']");
+		List<WebElement> pageEls = browser.findElements(pageBy);
+		Assert.assertTrue(pageEls.isEmpty());
+		return this;
+	}
+	
+	public CPPage selectPage(String title) {
+		By pageBy = By.xpath("//a[@title='" + title + "']");
+		browser.findElement(pageBy).click();
+		OOGraphene.waitBusy(browser);
+		return this;
+	}
+	
+	public CPEditorPage openEditor() {
+		if(!browser.findElement(toolsMenu).isDisplayed()) {
+			openToolsMenu();
+		}
+
+		By editBy = By.xpath("//ul[contains(@class,'o_sel_repository_tools')]//a[contains(@onclick,'edit.cmd')]");
+		browser.findElement(editBy).click();
+		OOGraphene.waitBusy(browser);
+		return new CPEditorPage(browser);
+	}
+
+	/**
+	 * Open the access configuration
+	 * 
+	 * @return
+	 */
+	public RepositoryAccessPage accessConfiguration() {
+		if(!browser.findElement(settingsMenu).isDisplayed()) {
+			openSettingsMenu();
+		}
+		By accessConfigBy = By.cssSelector("a.o_sel_course_access");
+		browser.findElement(accessConfigBy).click();
+		OOGraphene.waitBusy(browser);
+
+		WebElement main = browser.findElement(By.id("o_main_container"));
+		return Graphene.createPageFragment(RepositoryAccessPage.class, main);
+	}
+	
+	/**
+	 * Open the tools menu
+	 * @return
+	 */
+	public CPPage openToolsMenu() {
+		By toolsMenuCaret = By.cssSelector("a.o_sel_repository_tools");
+		browser.findElement(toolsMenuCaret).click();
+		OOGraphene.waitElement(toolsMenu, browser);
+		return this;
+	}
+	
+	/**
+	 * Open the settings menu.
+	 * @return
+	 */
+	public CPPage openSettingsMenu() {
+		By toolsMenuCaret = By.cssSelector("a.o_sel_course_settings");
+		browser.findElement(toolsMenuCaret).click();
+		OOGraphene.waitElement(settingsMenu, browser);
+		return this;
+	}
+
+}
diff --git a/src/test/java/org/olat/selenium/page/repository/FeedPage.java b/src/test/java/org/olat/selenium/page/repository/FeedPage.java
index c45504f3837bc2c992a1540f6e3b2454d77bc12a..d65d20ea0876caca9e11aab7c72343b96cb8d0bf 100644
--- a/src/test/java/org/olat/selenium/page/repository/FeedPage.java
+++ b/src/test/java/org/olat/selenium/page/repository/FeedPage.java
@@ -131,6 +131,10 @@ public class FeedPage {
 	}
 	
 	public FeedPage fillPostForm(String title, String summary, String content) {
+		//wait that the popup is available
+		By postFormBy = By.cssSelector("fieldset.o_sel_blog_form");
+		OOGraphene.waitElement(postFormBy, 2, browser);
+
 		By titleBy = By.cssSelector("div.o_sel_blog_title input[type='text']");
 		browser.findElement(titleBy).sendKeys(title);
 		
diff --git a/src/test/java/org/olat/test/file_resources/IMG_1482.JPG b/src/test/java/org/olat/test/file_resources/IMG_1482.JPG
new file mode 100644
index 0000000000000000000000000000000000000000..47cf8ec15fcae0950cff7675f167bcfcdd940e3e
Binary files /dev/null and b/src/test/java/org/olat/test/file_resources/IMG_1482.JPG differ
diff --git a/src/test/java/org/olat/test/file_resources/page.html b/src/test/java/org/olat/test/file_resources/page.html
new file mode 100644
index 0000000000000000000000000000000000000000..21973506f205e405fa60f0fbc91f221f341e4fee
--- /dev/null
+++ b/src/test/java/org/olat/test/file_resources/page.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<title>Small HTML page</title>
+</head>
+<body>
+	<h1>Small HTML page</h1>
+	<p>This is a small HTML page for the selenium tests.</p>
+</body>
+</html>
\ No newline at end of file