From 43dffbd739e89eb2ea1070065e8db2e9e78847c4 Mon Sep 17 00:00:00 2001 From: gaaclarke <30870216+gaaclarke@users.noreply.github.com> Date: Wed, 15 Apr 2020 11:52:52 -0700 Subject: [PATCH] Added some tests after the fact for #17499 (flutter/engine#17714) --- .../framework/Source/SemanticsObjectTest.mm | 26 +++++++++++++++++++ .../ios/IosUnitTests/build_and_run_tests.sh | 2 ++ 2 files changed, 28 insertions(+) diff --git a/engine/src/flutter/shell/platform/darwin/ios/framework/Source/SemanticsObjectTest.mm b/engine/src/flutter/shell/platform/darwin/ios/framework/Source/SemanticsObjectTest.mm index 8ec62338ab8..21bd5611bee 100644 --- a/engine/src/flutter/shell/platform/darwin/ios/framework/Source/SemanticsObjectTest.mm +++ b/engine/src/flutter/shell/platform/darwin/ios/framework/Source/SemanticsObjectTest.mm @@ -38,4 +38,30 @@ class MockAccessibilityBridge : public AccessibilityBridgeIos { XCTAssertNotNil(object); } +- (void)testSetChildren { + fml::WeakPtrFactory factory( + new flutter::MockAccessibilityBridge()); + fml::WeakPtr bridge = factory.GetWeakPtr(); + SemanticsObject* parent = [[SemanticsObject alloc] initWithBridge:bridge uid:0]; + SemanticsObject* child = [[SemanticsObject alloc] initWithBridge:bridge uid:1]; + parent.children = @[ child ]; + XCTAssertEqual(parent, child.parent); + parent.children = @[]; + XCTAssertNil(child.parent); +} + +- (void)testReplaceChildAtIndex { + fml::WeakPtrFactory factory( + new flutter::MockAccessibilityBridge()); + fml::WeakPtr bridge = factory.GetWeakPtr(); + SemanticsObject* parent = [[SemanticsObject alloc] initWithBridge:bridge uid:0]; + SemanticsObject* child1 = [[SemanticsObject alloc] initWithBridge:bridge uid:1]; + SemanticsObject* child2 = [[SemanticsObject alloc] initWithBridge:bridge uid:2]; + parent.children = @[ child1 ]; + [parent replaceChildAtIndex:0 withChild:child2]; + XCTAssertNil(child1.parent); + XCTAssertEqual(parent, child2.parent); + XCTAssertEqualObjects(parent.children, @[ child2 ]); +} + @end diff --git a/engine/src/flutter/testing/ios/IosUnitTests/build_and_run_tests.sh b/engine/src/flutter/testing/ios/IosUnitTests/build_and_run_tests.sh index 0c586192d94..833459c019d 100755 --- a/engine/src/flutter/testing/ios/IosUnitTests/build_and_run_tests.sh +++ b/engine/src/flutter/testing/ios/IosUnitTests/build_and_run_tests.sh @@ -1,5 +1,7 @@ #!/bin/sh +set -e + FLUTTER_ENGINE=ios_debug_sim_unopt if [ $# -eq 1 ]; then