| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| @import quick_actions_ios; |
| @import XCTest; |
| #import <OCMock/OCMock.h> |
| |
| @interface FLTShortcutStateManagerTests : XCTestCase |
| @end |
| |
| @implementation FLTShortcutStateManagerTests |
| |
| - (void)testSetShortcutItems_shouldSetItem { |
| id mockApplication = OCMPartialMock([UIApplication sharedApplication]); |
| OCMStub([mockApplication sharedApplication]).andReturn(mockApplication); |
| |
| FLTShortcutStateManager *shortcutStateManager = [[FLTShortcutStateManager alloc] init]; |
| |
| NSDictionary *rawItem = @{ |
| @"type" : @"SearchTheThing", |
| @"localizedTitle" : @"Search the thing", |
| @"icon" : @"search_the_thing.png", |
| }; |
| |
| [shortcutStateManager setShortcutItems:@[ rawItem ]]; |
| |
| UIApplicationShortcutItem *expectedItem = [[UIApplicationShortcutItem alloc] |
| initWithType:@"SearchTheThing" |
| localizedTitle:@"Search the thing" |
| localizedSubtitle:nil |
| icon:[UIApplicationShortcutIcon |
| iconWithTemplateImageName:@"search_the_thing.png"] |
| userInfo:nil]; |
| |
| OCMVerify([mockApplication setShortcutItems:@[ expectedItem ]]); |
| } |
| |
| - (void)testSetShortcutItems_shouldSetItemWithoutIcon { |
| id mockApplication = OCMPartialMock([UIApplication sharedApplication]); |
| OCMStub([mockApplication sharedApplication]).andReturn(mockApplication); |
| |
| NSDictionary *rawItem = @{ |
| @"type" : @"SearchTheThing", |
| @"localizedTitle" : @"Search the thing", |
| // Dart's null value is passed to iOS as `NSNull`. |
| // The key value pair is still present in the dictionary. |
| @"icon" : [NSNull null], |
| }; |
| FLTShortcutStateManager *shortcutStateManager = [[FLTShortcutStateManager alloc] init]; |
| [shortcutStateManager setShortcutItems:@[ rawItem ]]; |
| |
| UIApplicationShortcutItem *expectedItem = |
| [[UIApplicationShortcutItem alloc] initWithType:@"SearchTheThing" |
| localizedTitle:@"Search the thing" |
| localizedSubtitle:nil |
| icon:nil |
| userInfo:nil]; |
| OCMVerify([mockApplication setShortcutItems:@[ expectedItem ]]); |
| } |
| |
| @end |