Flutter macOS Embedder
FlutterViewEngineProviderTest.mm
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include <Carbon/Carbon.h>
6 #import <Foundation/Foundation.h>
7 #import <OCMock/OCMock.h>
8 
13 #import "flutter/testing/testing.h"
14 #include "third_party/googletest/googletest/include/gtest/gtest.h"
15 
16 #import "flutter/testing/testing.h"
17 #include "third_party/googletest/googletest/include/gtest/gtest.h"
18 
19 namespace flutter::testing {
20 
21 TEST(FlutterViewEngineProviderUnittests, GetViewReturnsTheCorrectView) {
22  FlutterViewEngineProvider* viewProvider;
23  id mockEngine = CreateMockFlutterEngine(@"");
24  __block id mockFlutterViewController;
25  OCMStub([mockEngine viewControllerForId:0])
26  .ignoringNonObjectArgs()
27  .andDo(^(NSInvocation* invocation) {
28  FlutterViewId viewId;
29  [invocation getArgument:&viewId atIndex:2];
30  if (viewId == kFlutterImplicitViewId) {
31  if (mockFlutterViewController != nil) {
32  [invocation setReturnValue:&mockFlutterViewController];
33  }
34  }
35  });
36  viewProvider = [[FlutterViewEngineProvider alloc] initWithEngine:mockEngine];
37 
38  // When the view controller is not set, the returned view is nil.
39  EXPECT_EQ([viewProvider viewForId:0], nil);
40 
41  // When the view controller is set, the returned view is the controller's view.
42  mockFlutterViewController = OCMStrictClassMock([FlutterViewController class]);
43  id mockView = OCMStrictClassMock([FlutterView class]);
44  OCMStub([mockFlutterViewController flutterView]).andReturn(mockView);
45  EXPECT_EQ([viewProvider viewForId:0], mockView);
46 }
47 
48 } // namespace flutter::testing
FlutterViewController
Definition: FlutterViewController.h:62
flutter::testing::CreateMockFlutterEngine
id CreateMockFlutterEngine(NSString *pasteboardString)
Definition: FlutterEngineTestUtils.mm:47
FlutterEngine_Internal.h
FlutterViewEngineProvider.h
flutter::testing
Definition: AccessibilityBridgeMacTest.mm:11
FlutterEngineTestUtils.h
FlutterViewEngineProvider
Definition: FlutterViewEngineProvider.h:15
kFlutterImplicitViewId
constexpr FlutterViewId kFlutterImplicitViewId
Definition: FlutterView.h:23
flutter::testing::TEST
TEST(AccessibilityBridgeMacTest, SendsAccessibilityCreateNotificationToWindowOfFlutterView)
Definition: AccessibilityBridgeMacTest.mm:61
FlutterViewController_Internal.h
FlutterView
Definition: FlutterView.h:39
FlutterViewId
int64_t FlutterViewId
Definition: FlutterView.h:12