1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
|
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/public/common/manifest/manifest_util.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/mojom/manifest/capture_links.mojom.h"
#include "third_party/blink/public/mojom/manifest/display_mode.mojom.h"
#include "url/gurl.h"
namespace blink {
TEST(ManifestUtilTest, DisplayModeConversions) {
struct ReversibleConversion {
blink::mojom::DisplayMode display_mode;
std::string lowercase_display_mode_string;
} reversible_conversions[] = {
{blink::mojom::DisplayMode::kUndefined, ""},
{blink::mojom::DisplayMode::kBrowser, "browser"},
{blink::mojom::DisplayMode::kMinimalUi, "minimal-ui"},
{blink::mojom::DisplayMode::kStandalone, "standalone"},
{blink::mojom::DisplayMode::kFullscreen, "fullscreen"},
{blink::mojom::DisplayMode::kWindowControlsOverlay,
"window-controls-overlay"},
{blink::mojom::DisplayMode::kTabbed, "tabbed"},
{blink::mojom::DisplayMode::kBorderless, "borderless"},
};
for (const ReversibleConversion& conversion : reversible_conversions) {
EXPECT_EQ(conversion.display_mode,
DisplayModeFromString(conversion.lowercase_display_mode_string));
EXPECT_EQ(conversion.lowercase_display_mode_string,
DisplayModeToString(conversion.display_mode));
}
// DisplayModeFromString() should work with non-lowercase strings.
EXPECT_EQ(blink::mojom::DisplayMode::kFullscreen,
DisplayModeFromString("Fullscreen"));
// DisplayModeFromString() should return
// DisplayMode::kUndefined if the string isn't known.
EXPECT_EQ(blink::mojom::DisplayMode::kUndefined,
DisplayModeFromString("random"));
}
TEST(ManifestUtilTest, WebScreenOrientationLockTypeConversions) {
struct ReversibleConversion {
device::mojom::ScreenOrientationLockType orientation;
std::string lowercase_orientation_string;
} reversible_conversions[] = {
{device::mojom::ScreenOrientationLockType::DEFAULT, ""},
{device::mojom::ScreenOrientationLockType::PORTRAIT_PRIMARY,
"portrait-primary"},
{device::mojom::ScreenOrientationLockType::PORTRAIT_SECONDARY,
"portrait-secondary"},
{device::mojom::ScreenOrientationLockType::LANDSCAPE_PRIMARY,
"landscape-primary"},
{device::mojom::ScreenOrientationLockType::LANDSCAPE_SECONDARY,
"landscape-secondary"},
{device::mojom::ScreenOrientationLockType::ANY, "any"},
{device::mojom::ScreenOrientationLockType::LANDSCAPE, "landscape"},
{device::mojom::ScreenOrientationLockType::PORTRAIT, "portrait"},
{device::mojom::ScreenOrientationLockType::NATURAL, "natural"},
};
for (const ReversibleConversion& conversion : reversible_conversions) {
EXPECT_EQ(conversion.orientation,
WebScreenOrientationLockTypeFromString(
conversion.lowercase_orientation_string));
EXPECT_EQ(conversion.lowercase_orientation_string,
WebScreenOrientationLockTypeToString(conversion.orientation));
}
// WebScreenOrientationLockTypeFromString() should work with non-lowercase
// strings.
EXPECT_EQ(device::mojom::ScreenOrientationLockType::NATURAL,
WebScreenOrientationLockTypeFromString("Natural"));
// WebScreenOrientationLockTypeFromString() should return
// blink::WebScreenOrientationLockDefault if the string isn't known.
EXPECT_EQ(device::mojom::ScreenOrientationLockType::DEFAULT,
WebScreenOrientationLockTypeFromString("random"));
}
TEST(ManifestUtilTest, CaptureLinksFromString) {
EXPECT_EQ(blink::mojom::CaptureLinks::kUndefined, CaptureLinksFromString(""));
EXPECT_EQ(blink::mojom::CaptureLinks::kNone, CaptureLinksFromString("none"));
EXPECT_EQ(blink::mojom::CaptureLinks::kNewClient,
CaptureLinksFromString("new-client"));
EXPECT_EQ(blink::mojom::CaptureLinks::kExistingClientNavigate,
CaptureLinksFromString("existing-client-navigate"));
// CaptureLinksFromString() should work with non-lowercase strings.
EXPECT_EQ(blink::mojom::CaptureLinks::kNewClient,
CaptureLinksFromString("NEW-CLIENT"));
// CaptureLinksFromString() should return CaptureLinks::kUndefined if the
// string isn't known.
EXPECT_EQ(blink::mojom::CaptureLinks::kUndefined,
CaptureLinksFromString("unknown-value"));
}
TEST(ManifestUtilTest, LaunchHandlerClientModeFromString) {
using ClientMode = Manifest::LaunchHandler::ClientMode;
EXPECT_EQ(std::nullopt, ClientModeFromString(""));
EXPECT_EQ(ClientMode::kAuto, ClientModeFromString("auto"));
EXPECT_EQ(ClientMode::kNavigateNew, ClientModeFromString("navigate-new"));
EXPECT_EQ(ClientMode::kNavigateExisting,
ClientModeFromString("navigate-existing"));
EXPECT_EQ(ClientMode::kFocusExisting, ClientModeFromString("focus-existing"));
// Uppercase spelling.
EXPECT_EQ(ClientMode::kNavigateNew, ClientModeFromString("NAVIGATE-NEW"));
// Unknown value.
EXPECT_EQ(std::nullopt, ClientModeFromString("unknown-value"));
}
} // namespace blink
|