Index: ui/wm/core/shadow_unittest.cc |
diff --git a/ui/wm/core/shadow_unittest.cc b/ui/wm/core/shadow_unittest.cc |
index 7416c39594fb996230c639ba2702f53e0b36f7db..b4b1f739f599a4afef47e8b181ed11dd999bb33d 100644 |
--- a/ui/wm/core/shadow_unittest.cc |
+++ b/ui/wm/core/shadow_unittest.cc |
@@ -10,6 +10,10 @@ |
namespace wm { |
namespace { |
+gfx::Insets InsetsForElevation(int elevation) { |
+ return -gfx::Insets(2 * elevation) + gfx::Insets(elevation, 0, -elevation, 0); |
+} |
+ |
using ShadowTest = aura::test::AuraTestBase; |
// Test if the proper content bounds is calculated based on the current style. |
@@ -22,9 +26,7 @@ TEST_F(ShadowTest, SetContentBounds) { |
shadow.SetContentBounds(content_bounds); |
EXPECT_EQ(content_bounds, shadow.content_bounds()); |
gfx::Rect shadow_bounds(content_bounds); |
- int elevation = 24; |
- shadow_bounds.Inset(-gfx::Insets(2 * elevation) + |
- gfx::Insets(elevation, 0, -elevation, 0)); |
+ shadow_bounds.Inset(InsetsForElevation(24)); |
EXPECT_EQ(shadow_bounds, shadow.layer()->bounds()); |
} |
@@ -34,9 +36,39 @@ TEST_F(ShadowTest, SetContentBounds) { |
shadow.SetContentBounds(content_bounds); |
EXPECT_EQ(content_bounds, shadow.content_bounds()); |
gfx::Rect shadow_bounds(content_bounds); |
- int elevation = 6; |
- shadow_bounds.Inset(-gfx::Insets(2 * elevation) + |
- gfx::Insets(elevation, 0, -elevation, 0)); |
+ shadow_bounds.Inset(InsetsForElevation(6)); |
+ EXPECT_EQ(shadow_bounds, shadow.layer()->bounds()); |
+ } |
+} |
+ |
+// Test that the elevation is reduced when the contents are too small to handle |
+// the full elevation. |
+TEST_F(ShadowTest, AdjustElevationForSmallContents) { |
+ Shadow shadow; |
+ shadow.Init(Shadow::STYLE_ACTIVE); |
+ { |
+ gfx::Rect content_bounds(100, 100, 300, 300); |
+ shadow.SetContentBounds(content_bounds); |
+ gfx::Rect shadow_bounds(content_bounds); |
+ shadow_bounds.Inset(InsetsForElevation(24)); |
+ EXPECT_EQ(shadow_bounds, shadow.layer()->bounds()); |
+ } |
+ |
+ { |
+ constexpr int kWidth = 80; |
+ gfx::Rect content_bounds(100, 100, kWidth, 300); |
+ shadow.SetContentBounds(content_bounds); |
+ gfx::Rect shadow_bounds(content_bounds); |
+ shadow_bounds.Inset(InsetsForElevation((kWidth - 4) / 4)); |
+ EXPECT_EQ(shadow_bounds, shadow.layer()->bounds()); |
+ } |
+ |
+ { |
+ constexpr int kHeight = 80; |
+ gfx::Rect content_bounds(100, 100, 300, kHeight); |
+ shadow.SetContentBounds(content_bounds); |
+ gfx::Rect shadow_bounds(content_bounds); |
+ shadow_bounds.Inset(InsetsForElevation((kHeight - 4) / 4)); |
EXPECT_EQ(shadow_bounds, shadow.layer()->bounds()); |
} |
} |