15d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
25d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)// found in the LICENSE file.
45d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
55d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "chrome/browser/devtools/devtools_contents_resizing_strategy.h"
65d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
75d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
95d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)TEST(DevToolsContentsResizingStrategyTest, ApplyZero) {
105d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  DevToolsContentsResizingStrategy zeroStrategy;
115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Size container_size(100, 200);
125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect old_devtools_bounds(0, 0, 100, 200);
135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect old_contents_bounds(20, 20, 60, 140);
145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect new_devtools_bounds;
155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect new_contents_bounds;
165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  ApplyDevToolsContentsResizingStrategy(
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      zeroStrategy, container_size,
185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      old_devtools_bounds, old_contents_bounds,
195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      &new_devtools_bounds, &new_contents_bounds);
205d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  EXPECT_EQ(gfx::Rect(0, 0, 100, 200), new_devtools_bounds);
215d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  EXPECT_EQ(gfx::Rect(0, 0, 100, 200), new_contents_bounds);
225d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
235d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)TEST(DevToolsContentsResizingStrategyTest, ApplyInsets) {
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  DevToolsContentsResizingStrategy strategy(
265d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      gfx::Insets(10, 20, 30, 40), gfx::Size(0, 0));
275d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Size container_size(100, 200);
285d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect old_devtools_bounds(0, 0, 100, 200);
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect old_contents_bounds(20, 20, 60, 140);
305d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect new_devtools_bounds;
315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect new_contents_bounds;
325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  ApplyDevToolsContentsResizingStrategy(
335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      strategy, container_size,
345d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      old_devtools_bounds, old_contents_bounds,
355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      &new_devtools_bounds, &new_contents_bounds);
365d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  EXPECT_EQ(gfx::Rect(0, 0, 100, 200), new_devtools_bounds);
375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  EXPECT_EQ(gfx::Rect(20, 10, 40, 160), new_contents_bounds);
385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
405d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)TEST(DevToolsContentsResizingStrategyTest, ApplyMinSize) {
415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  DevToolsContentsResizingStrategy strategy(
425d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      gfx::Insets(10, 20, 90, 30), gfx::Size(60, 120));
435d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Size container_size(100, 200);
445d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect old_devtools_bounds(0, 0, 100, 200);
455d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect old_contents_bounds(20, 20, 60, 140);
465d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect new_devtools_bounds;
475d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect new_contents_bounds;
485d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  ApplyDevToolsContentsResizingStrategy(
495d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      strategy, container_size,
505d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      old_devtools_bounds, old_contents_bounds,
515d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      &new_devtools_bounds, &new_contents_bounds);
525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  EXPECT_EQ(gfx::Rect(0, 0, 100, 200), new_devtools_bounds);
535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  EXPECT_EQ(gfx::Rect(16, 8, 60, 120), new_contents_bounds);
545d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
555d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
565d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)TEST(DevToolsContentsResizingStrategyTest, ApplyLargeInset) {
575d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  DevToolsContentsResizingStrategy strategy(
585d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      gfx::Insets(0, 130, 0, 0), gfx::Size(60, 120));
595d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Size container_size(100, 200);
605d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect old_devtools_bounds(0, 0, 100, 200);
615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect old_contents_bounds(20, 20, 60, 140);
625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect new_devtools_bounds;
635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect new_contents_bounds;
645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  ApplyDevToolsContentsResizingStrategy(
655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      strategy, container_size,
665d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      old_devtools_bounds, old_contents_bounds,
675d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      &new_devtools_bounds, &new_contents_bounds);
685d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  EXPECT_EQ(gfx::Rect(0, 0, 100, 200), new_devtools_bounds);
695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  EXPECT_EQ(gfx::Rect(40, 0, 60, 200), new_contents_bounds);
705d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
715d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
725d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)TEST(DevToolsContentsResizingStrategyTest, ApplyTwoLargeInsets) {
735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  DevToolsContentsResizingStrategy strategy(
745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      gfx::Insets(120, 0, 80, 0), gfx::Size(60, 120));
755d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Size container_size(100, 200);
765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect old_devtools_bounds(0, 0, 100, 200);
775d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect old_contents_bounds(20, 20, 60, 140);
785d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect new_devtools_bounds;
795d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect new_contents_bounds;
805d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  ApplyDevToolsContentsResizingStrategy(
815d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      strategy, container_size,
825d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      old_devtools_bounds, old_contents_bounds,
835d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      &new_devtools_bounds, &new_contents_bounds);
845d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  EXPECT_EQ(gfx::Rect(0, 0, 100, 200), new_devtools_bounds);
855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  EXPECT_EQ(gfx::Rect(0, 48, 100, 120), new_contents_bounds);
865d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
875d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
885d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)TEST(DevToolsContentsResizingStrategyTest, ApplySmallContainer) {
895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  DevToolsContentsResizingStrategy strategy(
905d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      gfx::Insets(10, 10, 10, 10), gfx::Size(120, 230));
915d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Size container_size(100, 200);
925d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect old_devtools_bounds(0, 0, 100, 200);
935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect old_contents_bounds(20, 20, 60, 140);
945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect new_devtools_bounds;
955d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  gfx::Rect new_contents_bounds;
965d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  ApplyDevToolsContentsResizingStrategy(
975d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      strategy, container_size,
985d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      old_devtools_bounds, old_contents_bounds,
995d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      &new_devtools_bounds, &new_contents_bounds);
1005d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  EXPECT_EQ(gfx::Rect(0, 0, 100, 200), new_devtools_bounds);
1015d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  EXPECT_EQ(gfx::Rect(0, 0, 100, 200), new_contents_bounds);
1025d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)}
103