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 
9 #include "flutter/common/constants.h"
14 #import "flutter/testing/testing.h"
15 #include "third_party/googletest/googletest/include/gtest/gtest.h"
16 
17 namespace flutter::testing {
18 
19 TEST(FlutterViewEngineProviderUnittests, GetViewReturnsTheCorrectView) {
20  FlutterViewEngineProvider* viewProvider;
21  id mockEngine = CreateMockFlutterEngine(@"");
22  __block id mockFlutterViewController;
23  OCMStub([mockEngine viewControllerForIdentifier:0])
24  .ignoringNonObjectArgs()
25  .andDo(^(NSInvocation* invocation) {
26  FlutterViewIdentifier viewIdentifier;
27  [invocation getArgument:&viewIdentifier atIndex:2];
28  if (viewIdentifier == kFlutterImplicitViewId) {
29  if (mockFlutterViewController != nil) {
30  [invocation setReturnValue:&mockFlutterViewController];
31  }
32  }
33  });
34  viewProvider = [[FlutterViewEngineProvider alloc] initWithEngine:mockEngine];
35 
36  // When the view controller is not set, the returned view is nil.
37  EXPECT_EQ([viewProvider viewForIdentifier:0], nil);
38 
39  // When the view controller is set, the returned view is the controller's view.
40  mockFlutterViewController = OCMStrictClassMock([FlutterViewController class]);
41  id mockView = OCMStrictClassMock([FlutterView class]);
42  OCMStub([mockFlutterViewController flutterView]).andReturn(mockView);
43  EXPECT_EQ([viewProvider viewForIdentifier:0], mockView);
44 }
45 
46 } // namespace flutter::testing
FlutterViewController
Definition: FlutterViewController.h:73
flutter::testing::CreateMockFlutterEngine
id CreateMockFlutterEngine(NSString *pasteboardString)
Definition: FlutterEngineTestUtils.mm:76
FlutterEngine_Internal.h
FlutterViewEngineProvider.h
flutter::testing
Definition: AccessibilityBridgeMacTest.mm:13
flutter::testing::TEST
TEST(FlutterAppDelegateTest, DoesNotCallDelegatesWithoutHandler)
Definition: FlutterAppDelegateTest.mm:32
FlutterEngineTestUtils.h
FlutterViewEngineProvider
Definition: FlutterViewEngineProvider.h:18
FlutterViewController_Internal.h
FlutterView
Definition: FlutterView.h:35
FlutterViewIdentifier
int64_t FlutterViewIdentifier
Definition: FlutterViewController.h:21