diff --git a/core/css/header.scss b/core/css/header.scss
index 21305de0d02755aeb60ea7a34a538362ae7c8220..b5bb8ca9c5b74fb4cfe17a25cc63c1636ac55d67 100644
--- a/core/css/header.scss
+++ b/core/css/header.scss
@@ -78,11 +78,14 @@
 		background-color: $color-main-background;
 		filter: drop-shadow(0 1px 3px $color-box-shadow);
 		border-radius: 0 0 3px 3px;
-		display: none;
 		box-sizing: border-box;
 		z-index: 2000;
 		position: absolute;
 
+		&:not(.popovermenu) {
+			display: none;
+		}
+
 		/* Dropdown arrow */
 		&:after {
 			border: 10px solid transparent;
diff --git a/tests/acceptance/features/app-files.feature b/tests/acceptance/features/app-files.feature
index ac2d05fac2c27ff14cd092b9763f72a67a469d5d..2cb43611b9ab9c2fa6bd553e5c989f72d35e63bc 100644
--- a/tests/acceptance/features/app-files.feature
+++ b/tests/acceptance/features/app-files.feature
@@ -23,6 +23,17 @@ Feature: app-files
     When I open the details view for "welcome.txt"
     Then I see that the details view for "All files" section is open
 
+  Scenario: open the menu in a public shared link
+    Given I act as John
+    And I am logged in
+    And I share the link for "welcome.txt"
+    And I write down the shared link
+    When I act as Jane
+    And I visit the shared link I wrote down
+    And I see that the current page is the shared link I wrote down
+    And I open the Share menu
+    Then I see that the Share menu is shown
+
   Scenario: set a password to a shared link
     Given I am logged in
     And I share the link for "welcome.txt"
diff --git a/tests/acceptance/features/bootstrap/FilesSharingAppContext.php b/tests/acceptance/features/bootstrap/FilesSharingAppContext.php
index 88c1180c753730ff74f467d242ad527fe8725050..f3386b46db9a0b38c6291f449f34caffe080bf94 100644
--- a/tests/acceptance/features/bootstrap/FilesSharingAppContext.php
+++ b/tests/acceptance/features/bootstrap/FilesSharingAppContext.php
@@ -51,6 +51,49 @@ class FilesSharingAppContext implements Context, ActorAwareInterface {
 				describedAs("Wrong password message in Authenticate page");
 	}
 
+	/**
+	 * @return Locator
+	 */
+	public static function shareMenuButton() {
+		return Locator::forThe()->id("share-menutoggle")->
+				describedAs("Share menu button in Shared file page");
+	}
+
+	/**
+	 * @return Locator
+	 */
+	public static function shareMenu() {
+		return Locator::forThe()->id("share-menu")->
+				describedAs("Share menu in Shared file page");
+	}
+
+	/**
+	 * @return Locator
+	 */
+	public static function downloadItemInShareMenu() {
+		return Locator::forThe()->id("download")->
+				descendantOf(self::shareMenu())->
+				describedAs("Download item in Share menu in Shared file page");
+	}
+
+	/**
+	 * @return Locator
+	 */
+	public static function directLinkItemInShareMenu() {
+		return Locator::forThe()->id("directLink-container")->
+				descendantOf(self::shareMenu())->
+				describedAs("Direct link item in Share menu in Shared file page");
+	}
+
+	/**
+	 * @return Locator
+	 */
+	public static function saveItemInShareMenu() {
+		return Locator::forThe()->id("save")->
+				descendantOf(self::shareMenu())->
+				describedAs("Save item in Share menu in Shared file page");
+	}
+
 	/**
 	 * @return Locator
 	 */
@@ -74,6 +117,13 @@ class FilesSharingAppContext implements Context, ActorAwareInterface {
 		$this->actor->find(self::authenticateButton())->click();
 	}
 
+	/**
+	 * @When I open the Share menu
+	 */
+	public function iOpenTheShareMenu() {
+		$this->actor->find(self::shareMenuButton(), 10)->click();
+	}
+
 	/**
 	 * @Then I see that the current page is the Authenticate page for the shared link I wrote down
 	 */
@@ -100,6 +150,26 @@ class FilesSharingAppContext implements Context, ActorAwareInterface {
 				$this->actor->find(self::wrongPasswordMessage(), 10)->isVisible());
 	}
 
+	/**
+	 * @Then I see that the Share menu is shown
+	 */
+	public function iSeeThatTheShareMenuIsShown() {
+		// Unlike other menus, the Share menu is always present in the DOM, so
+		// the element could be found when it was no made visible yet due to the
+		// command not having been processed by the browser.
+		if (!$this->waitForElementToBeEventuallyShown(
+				self::shareMenu(), $timeout = 10 * $this->actor->getFindTimeoutMultiplier())) {
+			PHPUnit_Framework_Assert::fail("The Share menu is not visible yet after $timeout seconds");
+		}
+
+		PHPUnit_Framework_Assert::assertTrue(
+				$this->actor->find(self::downloadItemInShareMenu())->isVisible());
+		PHPUnit_Framework_Assert::assertTrue(
+				$this->actor->find(self::directLinkItemInShareMenu())->isVisible());
+		PHPUnit_Framework_Assert::assertTrue(
+				$this->actor->find(self::saveItemInShareMenu())->isVisible());
+	}
+
 	/**
 	 * @Then I see that the shared file preview shows the text :text
 	 */
@@ -107,4 +177,18 @@ class FilesSharingAppContext implements Context, ActorAwareInterface {
 		PHPUnit_Framework_Assert::assertContains($text, $this->actor->find(self::textPreview(), 10)->getText());
 	}
 
+	private function waitForElementToBeEventuallyShown($elementLocator, $timeout = 10, $timeoutStep = 1) {
+		$actor = $this->actor;
+
+		$elementShownCallback = function() use ($actor, $elementLocator) {
+			try {
+				return $actor->find($elementLocator)->isVisible();
+			} catch (NoSuchElementException $exception) {
+				return false;
+			}
+		};
+
+		return Utils::waitFor($elementShownCallback, $timeout, $timeoutStep);
+	}
+
 }