1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/browser/ui/views/validation_message_bubble_delegate.h" 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/utf_string_conversions.h" 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace { 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)gfx::Size GetSizeForMessages(const std::string& main_text, 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const std::string& sub_text) { 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) ValidationMessageBubbleDelegate delegate( 155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) gfx::Rect(), base::UTF8ToUTF16(main_text), 165d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) base::UTF8ToUTF16(sub_text), NULL); 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return delegate.GetPreferredSize(); 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)TEST(ValidationMessageBubbleDelegate, Size) { 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) gfx::Size short_main_empty_sub_size = GetSizeForMessages("foo", ""); 22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_LE(ValidationMessageBubbleDelegate::kWindowMinWidth, 23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) short_main_empty_sub_size.width()); 24c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_LE(0, short_main_empty_sub_size.height()); 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) gfx::Size long_main_empty_sub_size = GetSizeForMessages( 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod" 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) " tempor incididunt ut labore et dolore magna aliqua.", ""); 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_GE(ValidationMessageBubbleDelegate::kWindowMaxWidth, 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) long_main_empty_sub_size.width()); 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_GT(long_main_empty_sub_size.height(), 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) short_main_empty_sub_size.height()); 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) gfx::Size short_main_medium_sub_size = 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) GetSizeForMessages("foo", "foo bar baz"); 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_GT(short_main_medium_sub_size.width(), 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) short_main_empty_sub_size.width()); 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_GT(short_main_medium_sub_size.height(), 39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) short_main_empty_sub_size.height()); 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) gfx::Size short_main_long_sub_size = GetSizeForMessages("foo", 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod" 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) " tempor incididunt ut labore et dolore magna aliqua."); 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_GT(short_main_long_sub_size.width(), 45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) short_main_medium_sub_size.width()); 46c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_GE(ValidationMessageBubbleDelegate::kWindowMaxWidth, 47c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) short_main_long_sub_size.width()); 48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) EXPECT_GT(short_main_long_sub_size.height(), 49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) short_main_medium_sub_size.height()); 50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 53