Index: chrome/browser/ui/cocoa/apps/native_app_window_cocoa_interactive_uitest.mm |
diff --git a/chrome/browser/ui/cocoa/apps/native_app_window_cocoa_interactive_uitest.mm b/chrome/browser/ui/cocoa/apps/native_app_window_cocoa_interactive_uitest.mm |
new file mode 100644 |
index 0000000000000000000000000000000000000000..bffc99b288418d755fb35296b94325229cb2b3e5 |
--- /dev/null |
+++ b/chrome/browser/ui/cocoa/apps/native_app_window_cocoa_interactive_uitest.mm |
@@ -0,0 +1,59 @@ |
+// Copyright 2015 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. |
+ |
+// This file tests whichever implementation of NativeAppWindow is used. |
tapted
2015/05/06 03:15:42
btw - have you been able to try out the views vers
jackhou1
2015/05/12 05:39:04
Yeah I had to comment out a bunch of test files in
|
+// I.e. it could be NativeAppWindowCocoa or ChromeNativeAppWindowViewsMac. |
+#include "extensions/browser/app_window/native_app_window.h" |
+ |
+#import <Cocoa/Cocoa.h> |
+ |
+#include "base/mac/mac_util.h" |
tapted
2015/05/06 03:15:42
is this used?
jackhou1
2015/05/12 05:39:04
Moved back to browser_test.
|
+#include "base/mac/scoped_nsobject.h" |
tapted
2015/05/06 03:15:42
nit: import
jackhou1
2015/05/12 05:39:05
Done.
|
+#include "base/mac/sdk_forward_declarations.h" |
tapted
2015/05/06 03:15:42
import
jackhou1
2015/05/12 05:39:04
Done.
|
+#include "chrome/browser/apps/app_browsertest_util.h" |
+#include "content/public/test/test_utils.h" |
tapted
2015/05/06 03:15:42
is this used?
jackhou1
2015/05/12 05:39:04
Moved back to browser_test.
|
+#include "extensions/common/constants.h" |
+#import "skia/ext/skia_utils_mac.h" |
+ |
+namespace { |
+ |
+class NativeAppWindowCocoaInteractiveTest |
tapted
2015/05/06 03:15:41
If the harness is empty, you can instead do
`usin
jackhou1
2015/05/12 05:39:04
Moved back to browser_test.
|
+ : public extensions::PlatformAppBrowserTest { |
+ protected: |
+ NativeAppWindowCocoaInteractiveTest() {} |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(NativeAppWindowCocoaInteractiveTest); |
+}; |
+ |
+} // namespace |
+ |
+IN_PROC_BROWSER_TEST_F(NativeAppWindowCocoaInteractiveTest, FrameColor) { |
tapted
2015/05/06 03:15:42
needs a comment saying what the test is for
jackhou1
2015/05/12 05:39:05
Done.
|
+ extensions::AppWindow* app_window = CreateTestAppWindow( |
+ "{\"frame\": {\"color\": \"#FF0000\", \"inactiveColor\": \"#0000FF\"}}"); |
+ NSWindow* ns_window = app_window->GetNativeWindow(); |
+ // Disable color correction so we can read unmodified values from the bitmap. |
+ [ns_window setColorSpace:[NSColorSpace sRGBColorSpace]]; |
+ |
+ NSView* frame_view = [[ns_window contentView] superview]; |
+ NSRect bounds = [frame_view bounds]; |
+ NSBitmapImageRep* bitmap = |
+ [frame_view bitmapImageRepForCachingDisplayInRect:bounds]; |
+ |
+ NSColor* blueColor = gfx::SkColorToSRGBNSColor(SK_ColorBLUE); |
tapted
2015/05/06 03:15:42
blueColor -> blue_color
jackhou1
2015/05/12 05:39:04
Done.
|
+ [frame_view cacheDisplayInRect:bounds toBitmapImageRep:bitmap]; |
+ NSColor* color = [bitmap colorAtX:(bounds.size.width / 2)y:5]; |
tapted
2015/05/06 03:15:42
space before `y:`, also below
tapted
2015/05/06 03:15:42
bounds.size.width/2 -> NSMidX(bounds)
jackhou1
2015/05/12 05:39:04
Done.
jackhou1
2015/05/12 05:39:04
Done.
|
+ EXPECT_EQ([blueColor redComponent], [color redComponent]); |
+ EXPECT_EQ([blueColor greenComponent], [color greenComponent]); |
+ EXPECT_EQ([blueColor blueComponent], [color blueComponent]); |
tapted
2015/05/06 03:15:42
I don't find these checks as convincing as just re
jackhou1
2015/05/12 05:39:05
Done.
tapted
2015/05/12 06:15:43
You missed this i think
jackhou1
2015/05/14 02:59:13
NSColor components are CGFloats, so it's 1 instead
tapted
2015/05/14 04:23:50
Ah, can you comment - it should say the values cor
jackhou1
2015/05/14 06:20:40
Done.
|
+ |
+ [ns_window makeKeyAndOrderFront:nil]; |
tapted
2015/05/06 03:15:42
I think this updates isMain/Key asynchronously, so
jackhou1
2015/05/12 05:39:04
ScopedFakeWindowMainStatus works. Moved to its own
|
+ [NSApp activateIgnoringOtherApps:YES]; |
+ NSColor* redColor = gfx::SkColorToSRGBNSColor(SK_ColorRED); |
tapted
2015/05/06 03:15:42
red_color
jackhou1
2015/05/12 05:39:04
Done.
|
+ [frame_view cacheDisplayInRect:bounds toBitmapImageRep:bitmap]; |
+ color = [bitmap colorAtX:(bounds.size.width / 2)y:5]; |
+ EXPECT_EQ([redColor redComponent], [color redComponent]); |
+ EXPECT_EQ([redColor greenComponent], [color greenComponent]); |
+ EXPECT_EQ([redColor blueComponent], [color blueComponent]); |
+} |