// Copyright (c) 2006-2008 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. #include "app/win_util.h" #include "testing/gtest/include/gtest/gtest.h" TEST(WinUtilTest, EnsureRectIsVisibleInRect) { gfx::Rect parent_rect(0, 0, 500, 400); { // Child rect x < 0 gfx::Rect child_rect(-50, 20, 100, 100); win_util::EnsureRectIsVisibleInRect(parent_rect, &child_rect, 10); EXPECT_EQ(gfx::Rect(10, 20, 100, 100), child_rect); } { // Child rect y < 0 gfx::Rect child_rect(20, -50, 100, 100); win_util::EnsureRectIsVisibleInRect(parent_rect, &child_rect, 10); EXPECT_EQ(gfx::Rect(20, 10, 100, 100), child_rect); } { // Child rect right > parent_rect.right gfx::Rect child_rect(450, 20, 100, 100); win_util::EnsureRectIsVisibleInRect(parent_rect, &child_rect, 10); EXPECT_EQ(gfx::Rect(390, 20, 100, 100), child_rect); } { // Child rect bottom > parent_rect.bottom gfx::Rect child_rect(20, 350, 100, 100); win_util::EnsureRectIsVisibleInRect(parent_rect, &child_rect, 10); EXPECT_EQ(gfx::Rect(20, 290, 100, 100), child_rect); } { // Child rect width > parent_rect.width gfx::Rect child_rect(20, 20, 700, 100); win_util::EnsureRectIsVisibleInRect(parent_rect, &child_rect, 10); EXPECT_EQ(gfx::Rect(20, 20, 480, 100), child_rect); } { // Child rect height > parent_rect.height gfx::Rect child_rect(20, 20, 100, 700); win_util::EnsureRectIsVisibleInRect(parent_rect, &child_rect, 10); EXPECT_EQ(gfx::Rect(20, 20, 100, 380), child_rect); } } static const struct filename_case { const wchar_t* filename; const wchar_t* filter_selected; const wchar_t* suggested_ext; const wchar_t* result; } filename_cases[] = { // Test a specific filter (*.jpg). {L"f", L"*.jpg", L"jpg", L"f.jpg"}, {L"f.", L"*.jpg", L"jpg", L"f..jpg"}, {L"f..", L"*.jpg", L"jpg", L"f...jpg"}, {L"f.jpeg", L"*.jpg", L"jpg", L"f.jpeg"}, // Further guarantees. {L"f.jpg.jpg", L"*.jpg", L"jpg", L"f.jpg.jpg"}, {L"f.exe.jpg", L"*.jpg", L"jpg", L"f.exe.jpg"}, {L"f.jpg.exe", L"*.jpg", L"jpg", L"f.jpg.exe.jpg"}, {L"f.exe..", L"*.jpg", L"jpg", L"f.exe...jpg"}, {L"f.jpg..", L"*.jpg", L"jpg", L"f.jpg...jpg"}, // Test the All Files filter (*.jpg). {L"f", L"*.*", L"jpg", L"f"}, {L"f.", L"*.*", L"jpg", L"f"}, {L"f..", L"*.*", L"jpg", L"f"}, {L"f.jpg", L"*.*", L"jpg", L"f.jpg"}, {L"f.jpeg", L"*.*", L"jpg", L"f.jpeg"}, // Same MIME type (diff. ext). // Test the empty filter, which should behave identically to the // All Files filter. {L"f", L"", L"jpg", L"f"}, {L"f.", L"", L"jpg", L"f"}, {L"f..", L"", L"jpg", L"f"}, {L"f.jpg", L"", L"jpg", L"f.jpg"}, {L"f.jpeg", L"", L"jpg", L"f.jpeg"}, };