// Copyright (c) 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #import <Cocoa/Cocoa.h> #include "base/strings/utf_string_conversions.h" #import "chrome/browser/ui/cocoa/validation_message_bubble_controller.h" #include "testing/gtest/include/gtest/gtest.h" namespace { static NSView* constructView(const char* main_text, const char* sub_text) { return [ValidationMessageBubbleController constructContentView:base::UTF8ToUTF16(main_text) subText:base::UTF8ToUTF16(sub_text)]; } TEST(ValidationMessageBubbleControllerTest, FrameSize) { NSRect shortMainNoSubFrame = [constructView("abc", "") frame]; EXPECT_GE(NSWidth(shortMainNoSubFrame), 40); EXPECT_GT(NSHeight(shortMainNoSubFrame), 0); NSRect longMainNoSubFrame = [constructView( "very very very long text which overlfows the maximum window width. " "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod" " tempor incididunt ut labore et dolore magna aliqua.", "") frame]; EXPECT_LT(NSWidth(longMainNoSubFrame), 500); EXPECT_LT(NSHeight(shortMainNoSubFrame), NSHeight(longMainNoSubFrame)); NSRect shortMainMediumSubFrame = [constructView("abc", "foo bar baz") frame]; EXPECT_GT(NSWidth(shortMainMediumSubFrame), NSWidth(shortMainNoSubFrame)); EXPECT_GT(NSHeight(shortMainMediumSubFrame), NSHeight(shortMainNoSubFrame)); NSRect shortMainLongSubFrame = [constructView("abc", "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod" " tempor incididunt ut labore et dolore magna aliqua.") frame]; EXPECT_GT(NSWidth(shortMainLongSubFrame), NSWidth(shortMainMediumSubFrame)); EXPECT_LT(NSWidth(shortMainLongSubFrame), 500); EXPECT_GT(NSHeight(shortMainLongSubFrame), NSHeight(shortMainMediumSubFrame)); } }