1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "base/basictypes.h" 6 #include "testing/gtest/include/gtest/gtest.h" 7 #include "ui/gfx/insets.h" 8 #include "ui/gfx/shadow_value.h" 9 10 namespace gfx { 11 12 TEST(ShadowValueTest, GetMargin) { 13 const struct TestCase { 14 Insets expected_margin; 15 size_t shadow_count; 16 ShadowValue shadows[2]; 17 } kTestCases[] = { 18 { 19 Insets(), 0, {}, 20 }, 21 { 22 Insets(-2, -2, -2, -2), 23 1, 24 { ShadowValue(gfx::Point(0, 0), 4, 0), }, 25 }, 26 { 27 Insets(0, -1, -4, -3), 28 1, 29 { ShadowValue(gfx::Point(1, 2), 4, 0), }, 30 }, 31 { 32 Insets(-4, -3, 0, -1), 33 1, 34 { ShadowValue(gfx::Point(-1, -2), 4, 0), }, 35 }, 36 { 37 Insets(0, -1, -5, -4), 38 2, 39 { 40 ShadowValue(gfx::Point(1, 2), 4, 0), 41 ShadowValue(gfx::Point(2, 3), 4, 0), 42 }, 43 }, 44 { 45 Insets(-4, -3, -5, -4), 46 2, 47 { 48 ShadowValue(gfx::Point(-1, -2), 4, 0), 49 ShadowValue(gfx::Point(2, 3), 4, 0), 50 }, 51 }, 52 }; 53 54 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestCases); ++i) { 55 Insets margin = ShadowValue::GetMargin( 56 ShadowValues(kTestCases[i].shadows, 57 kTestCases[i].shadows + kTestCases[i].shadow_count)); 58 59 EXPECT_EQ(kTestCases[i].expected_margin, margin) << " i=" << i; 60 } 61 } 62 63 } // namespace gfx 64