#import "flutter/shell/platform/darwin/macos/framework/Source/FlutterDisplayLink.h"
#import <AppKit/AppKit.h>
#include "flutter/fml/synchronization/waitable_event.h"
#include "flutter/testing/testing.h"
Go to the source code of this file.
|
| TEST (FlutterDisplayLinkTest, ViewAddedToWindowFirst) |
|
| TEST (FlutterDisplayLinkTest, ViewAddedToWindowLater) |
|
| TEST (FlutterDisplayLinkTest, ViewRemovedFromWindow) |
|
| TEST (FlutterDisplayLinkTest, WorkaroundForFB13482573) |
|
◆ TEST() [1/4]
TEST |
( |
FlutterDisplayLinkTest |
, |
|
|
ViewAddedToWindowFirst |
|
|
) |
| |
Definition at line 35 of file FlutterDisplayLinkTest.mm.
36 NSWindow* window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 100, 100)
37 styleMask:NSWindowStyleMaskTitled
38 backing:NSBackingStoreNonretained
40 NSView* view = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, 100, 100)];
41 [window setContentView:view];
43 auto event = std::make_shared<fml::AutoResetWaitableEvent>();
46 initWithBlock:^(CFTimeInterval timestamp, CFTimeInterval targetTimestamp) {
56 [displayLink invalidate];
References FlutterDisplayLink::delegate, FlutterDisplayLink::displayLinkWithView:, FlutterDisplayLink::invalidate, and FlutterDisplayLink::paused.
◆ TEST() [2/4]
TEST |
( |
FlutterDisplayLinkTest |
, |
|
|
ViewAddedToWindowLater |
|
|
) |
| |
Definition at line 59 of file FlutterDisplayLinkTest.mm.
60 NSView* view = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, 100, 100)];
62 auto event = std::make_shared<fml::AutoResetWaitableEvent>();
65 initWithBlock:^(CFTimeInterval timestamp, CFTimeInterval targetTimestamp) {
73 NSWindow* window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 100, 100)
74 styleMask:NSWindowStyleMaskTitled
75 backing:NSBackingStoreNonretained
77 [window setContentView:view];
81 [displayLink invalidate];
References FlutterDisplayLink::delegate, FlutterDisplayLink::displayLinkWithView:, FlutterDisplayLink::invalidate, and FlutterDisplayLink::paused.
◆ TEST() [3/4]
TEST |
( |
FlutterDisplayLinkTest |
, |
|
|
ViewRemovedFromWindow |
|
|
) |
| |
Definition at line 84 of file FlutterDisplayLinkTest.mm.
85 NSWindow* window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 100, 100)
86 styleMask:NSWindowStyleMaskTitled
87 backing:NSBackingStoreNonretained
89 NSView* view = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, 100, 100)];
90 [window setContentView:view];
92 auto event = std::make_shared<fml::AutoResetWaitableEvent>();
95 initWithBlock:^(CFTimeInterval timestamp, CFTimeInterval targetTimestamp) {
110 [window setContentView:nil];
112 EXPECT_TRUE(event->WaitWithTimeout(fml::TimeDelta::FromMilliseconds(100)));
113 EXPECT_FALSE(event->IsSignaledForTest());
115 [displayLink invalidate];
References FlutterDisplayLink::delegate, FlutterDisplayLink::displayLinkWithView:, FlutterDisplayLink::invalidate, and FlutterDisplayLink::paused.
◆ TEST() [4/4]
TEST |
( |
FlutterDisplayLinkTest |
, |
|
|
WorkaroundForFB13482573 |
|
|
) |
| |
Definition at line 118 of file FlutterDisplayLinkTest.mm.
119 NSWindow* window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 100, 100)
120 styleMask:NSWindowStyleMaskTitled
121 backing:NSBackingStoreNonretained
123 NSView* view = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, 100, 100)];
124 [window setContentView:view];
126 auto event = std::make_shared<fml::AutoResetWaitableEvent>();
129 initWithBlock:^(CFTimeInterval timestamp, CFTimeInterval targetTimestamp) {
141 [NSThread detachNewThreadWithBlock:^{
149 [displayLink invalidate];
References FlutterDisplayLink::delegate, FlutterDisplayLink::displayLinkWithView:, FlutterDisplayLink::invalidate, and FlutterDisplayLink::paused.