Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(13)

Unified Diff: chrome/browser/android/vr_shell/textures/url_bar_texture_unittest.cc

Issue 2914543002: [vr] Bail on unhandled code points. (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/android/vr_shell/textures/url_bar_texture_unittest.cc
diff --git a/chrome/browser/android/vr_shell/textures/url_bar_texture_unittest.cc b/chrome/browser/android/vr_shell/textures/url_bar_texture_unittest.cc
index 4ebd7562e6951ad65cfb81a18db9236d1e9f5448..bc380321c39edd6c02c6d81fc8ec94f8aa3fa9c6 100644
--- a/chrome/browser/android/vr_shell/textures/url_bar_texture_unittest.cc
+++ b/chrome/browser/android/vr_shell/textures/url_bar_texture_unittest.cc
@@ -3,6 +3,9 @@
// found in the LICENSE file.
#include "chrome/browser/android/vr_shell/textures/url_bar_texture.h"
+
+#include "base/bind.h"
+#include "base/macros.h"
#include "base/memory/ptr_util.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/android/vr_shell/textures/render_text_wrapper.h"
@@ -10,14 +13,23 @@
#include "components/url_formatter/url_formatter.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/skia/include/core/SkSurface.h"
#include "ui/gfx/color_palette.h"
+#include "ui/gfx/font_list.h"
#include "ui/gfx/render_text.h"
using security_state::SecurityLevel;
namespace vr_shell {
-class MockRenderText : public vr_shell::RenderTextWrapper {
+static constexpr SkColor kEmphasizedColor = 0xFF000000;
+static constexpr SkColor kDeemphasizedColor = 0xFF5A5A5A;
+static const SkColor kSecureColor = gfx::kGoogleGreen700;
+static const SkColor kWarningColor = gfx::kGoogleRed700;
+static constexpr int kUrlWidth = 400;
+static constexpr int kUrlHeight = 30;
+
+class MockRenderText : public RenderTextWrapper {
public:
MockRenderText() : RenderTextWrapper(nullptr) {}
~MockRenderText() override {}
@@ -32,10 +44,44 @@ class MockRenderText : public vr_shell::RenderTextWrapper {
DISALLOW_COPY_AND_ASSIGN(MockRenderText);
};
-static constexpr SkColor kEmphasizedColor = 0xFF000000;
-static constexpr SkColor kDeemphasizedColor = 0xFF5A5A5A;
-static const SkColor kSecureColor = gfx::kGoogleGreen700;
-static const SkColor kWarningColor = gfx::kGoogleRed700;
+class TestUrlBarTexture : public UrlBarTexture {
+ public:
+ TestUrlBarTexture();
+ ~TestUrlBarTexture() override {}
+
+ void DrawURL(const GURL& gurl) {
+ unsupported_mode_ = UiUnsupportedMode::kCount;
+ SetURL(gurl);
+ sk_sp<SkSurface> surface = SkSurface::MakeRasterN32Premul(
+ texture_size_.width(), texture_size_.height());
+ DrawAndLayout(surface->getCanvas(), texture_size_);
+ }
+
+ void SetForceFontFallbackFailure(bool force) {
+ SetForceFontFallbackFailureForTesting(force);
+ }
+
+ // Reports the last unsupported mode that was encountered. Returns kCount if
+ // no unsupported mode was encountered.
+ UiUnsupportedMode unsupported_mode() const { return unsupported_mode_; }
+
+ private:
+ void OnUnsupportedFeature(UiUnsupportedMode mode) {
+ unsupported_mode_ = mode;
+ }
+
+ gfx::Size texture_size_;
+ gfx::Rect bounds_;
+ UiUnsupportedMode unsupported_mode_ = UiUnsupportedMode::kCount;
+};
+
+TestUrlBarTexture::TestUrlBarTexture()
+ : UrlBarTexture(base::Bind(&TestUrlBarTexture::OnUnsupportedFeature,
+ base::Unretained(this))),
+ texture_size_(kUrlWidth, kUrlHeight),
+ bounds_(kUrlWidth, kUrlHeight) {
+ gfx::FontList::SetDefaultFontDescription("Arial, Times New Roman, 15px");
+}
class UrlEmphasisTest : public testing::Test {
protected:
@@ -94,4 +140,16 @@ TEST_F(UrlEmphasisTest, Data) {
"data:text/html,lots of data");
}
+TEST(UrlBarTextureTest, WillFailOnUnhandledCodePoint) {
+ TestUrlBarTexture texture;
+ texture.DrawURL(GURL("https://foo.com"));
+ EXPECT_EQ(UiUnsupportedMode::kCount, texture.unsupported_mode());
+ texture.SetForceFontFallbackFailure(true);
+ texture.DrawURL(GURL("https://bar.com"));
+ EXPECT_EQ(UiUnsupportedMode::kUnhandledCodePoint, texture.unsupported_mode());
+ texture.SetForceFontFallbackFailure(false);
+ texture.DrawURL(GURL("https://baz.com"));
+ EXPECT_EQ(UiUnsupportedMode::kCount, texture.unsupported_mode());
+}
+
} // namespace vr_shell
« no previous file with comments | « chrome/browser/android/vr_shell/textures/url_bar_texture.cc ('k') | chrome/browser/android/vr_shell/ui_elements/url_bar.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698