summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Fischer <joeljfischer@gmail.com>2019-10-03 16:52:43 -0400
committerJoel Fischer <joeljfischer@gmail.com>2019-10-03 16:52:43 -0400
commit5a74c6f76dd9c32d2ce413c28457e7630d92e99b (patch)
tree7c143ad1c70af113459c3d6e2f6b9f288e6203d1
parent9c61b35a923f6dae373c25ddf6fe9bbed2581088 (diff)
parent11e7c4b783675b1f46c8c064b36eb7161de41a1a (diff)
downloadsdl_ios-5a74c6f76dd9c32d2ce413c28457e7630d92e99b.tar.gz
Merge 'develop' into 'feature/issue-1386-manager-update-display-capability'
-rw-r--r--.travis.yml10
-rw-r--r--SmartDeviceLink/Assets/Base.lproj/SDLLockScreen.storyboard11
-rw-r--r--SmartDeviceLink/SDLHMICapabilities.h18
-rw-r--r--SmartDeviceLink/SDLHMICapabilities.m16
-rw-r--r--SmartDeviceLink/SDLRPCParameterNames.h2
-rw-r--r--SmartDeviceLink/SDLRPCParameterNames.m2
-rw-r--r--SmartDeviceLink/SDLStreamingMediaConfiguration.h8
-rw-r--r--SmartDeviceLink/SDLStreamingMediaConfiguration.m2
-rw-r--r--SmartDeviceLink/SDLStreamingVideoLifecycleManager.h6
-rw-r--r--SmartDeviceLink/SDLStreamingVideoLifecycleManager.m22
-rw-r--r--SmartDeviceLinkTests/DevAPISpecs/SDLPresentKeyboardOperationSpec.m38
-rw-r--r--SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m1
-rw-r--r--SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testAppAndVehicleIcons@2x.pngbin0 -> 39056 bytes
-rw-r--r--SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testLightBackgroundNoAppNoVehicleIcons@2x.pngbin0 -> 39056 bytes
-rw-r--r--SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testNoAppNoVehicleIcons@2x.pngbin0 -> 39056 bytes
-rw-r--r--SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyAppIcon@2x.pngbin0 -> 39056 bytes
-rw-r--r--SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyVehicleIcon@2x.pngbin0 -> 39056 bytes
-rw-r--r--SmartDeviceLinkTests/SDLAsynchronousRPCOperationSpec.m2
18 files changed, 77 insertions, 61 deletions
diff --git a/.travis.yml b/.travis.yml
index 7c09c4f82..7ea31d992 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,8 +1,8 @@
language: objective-c
-osx_image: xcode10.3
+osx_image: xcode11
xcode_project: SmartDeviceLink-iOS.xcodeproj
xcode_scheme: SmartDeviceLink
-xcode_sdk: iphonesimulator12.4
+xcode_sdk: iphonesimulator13.0
env:
global:
- FRAMEWORK_NAME=SmartDeviceLink
@@ -18,9 +18,9 @@ before_script:
- carthage bootstrap --platform ios
script:
-- set -o pipefail && xcodebuild -project "SmartDeviceLink-iOS.xcodeproj" -scheme "SmartDeviceLink" -sdk "iphonesimulator12.4" -destination "OS=12.4,name=iPhone Xs" -configuration Debug ONLY_ACTIVE_ARCH=NO RUN_CLANG_STATIC_ANALYZER=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES ENABLE_TESTABILITY=YES test | xcpretty -c;
-- set -o pipefail && xcodebuild -project "SmartDeviceLink-iOS.xcodeproj" -scheme "SmartDeviceLink-Example-ObjC" -sdk "iphonesimulator12.4" -destination "OS=12.4,name=iPhone Xs" -configuration Debug ONLY_ACTIVE_ARCH=NO build | xcpretty -c;
-- set -o pipefail && xcodebuild -project "SmartDeviceLink-iOS.xcodeproj" -scheme "SmartDeviceLink-Example-Swift" -sdk "iphonesimulator12.4" -destination "OS=12.4,name=iPhone Xs" -configuration Debug ONLY_ACTIVE_ARCH=NO build | xcpretty -c;
+- set -o pipefail && xcodebuild -project "SmartDeviceLink-iOS.xcodeproj" -scheme "SmartDeviceLink" -sdk "iphonesimulator13.0" -destination "OS=13.0,name=iPhone 11" -configuration Debug ONLY_ACTIVE_ARCH=NO RUN_CLANG_STATIC_ANALYZER=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES ENABLE_TESTABILITY=YES test | xcpretty -c;
+- set -o pipefail && xcodebuild -project "SmartDeviceLink-iOS.xcodeproj" -scheme "SmartDeviceLink-Example-ObjC" -sdk "iphonesimulator13.0" -destination "OS=13.0,name=iPhone 11" -configuration Debug ONLY_ACTIVE_ARCH=NO build | xcpretty -c;
+- set -o pipefail && xcodebuild -project "SmartDeviceLink-iOS.xcodeproj" -scheme "SmartDeviceLink-Example-Swift" -sdk "iphonesimulator13.0" -destination "OS=13.0,name=iPhone 11" -configuration Debug ONLY_ACTIVE_ARCH=NO build | xcpretty -c;
after_script:
- bash <(curl -s https://codecov.io/bash)
diff --git a/SmartDeviceLink/Assets/Base.lproj/SDLLockScreen.storyboard b/SmartDeviceLink/Assets/Base.lproj/SDLLockScreen.storyboard
index 6d65f20d9..611806ac1 100644
--- a/SmartDeviceLink/Assets/Base.lproj/SDLLockScreen.storyboard
+++ b/SmartDeviceLink/Assets/Base.lproj/SDLLockScreen.storyboard
@@ -1,19 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13196" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="sao-xX-Ugl">
- <device id="retina4_7" orientation="portrait">
- <adaptation id="fullscreen"/>
- </device>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14868" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="sao-xX-Ugl">
+ <device id="retina4_7" orientation="portrait" appearance="light"/>
<dependencies>
<deployment identifier="iOS"/>
- <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13173"/>
- <capability name="Constraints to layout margins" minToolsVersion="6.0"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14824"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--Lock Screen View Controller-->
<scene sceneID="390-LV-jKT">
<objects>
- <viewController id="sao-xX-Ugl" customClass="SDLLockScreenViewController" sceneMemberID="viewController">
+ <viewController modalPresentationStyle="fullScreen" id="sao-xX-Ugl" customClass="SDLLockScreenViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="mqk-8V-oes"/>
<viewControllerLayoutGuide type="bottom" id="wh4-r5-yql"/>
diff --git a/SmartDeviceLink/SDLHMICapabilities.h b/SmartDeviceLink/SDLHMICapabilities.h
index 96c6e6259..84a2eecf7 100644
--- a/SmartDeviceLink/SDLHMICapabilities.h
+++ b/SmartDeviceLink/SDLHMICapabilities.h
@@ -60,6 +60,24 @@ NS_ASSUME_NONNULL_BEGIN
**/
@property (nullable, copy, nonatomic) NSNumber<SDLBool> *appServices;
+/**
+ Availability of displays. True: Available, False: Not Available
+
+ Boolean value. Optional.
+
+ Since SDL 6.0
+**/
+@property (nullable, copy, nonatomic) NSNumber<SDLBool> *displays;
+
+/**
+ Availability of seatLocation. True: Available, False: Not Available
+
+ Boolean value. Optional.
+
+ Since SDL 6.0
+ **/
+@property (nullable, copy, nonatomic) NSNumber<SDLBool> *seatLocation;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLHMICapabilities.m b/SmartDeviceLink/SDLHMICapabilities.m
index 4955c927f..fd0104e5e 100644
--- a/SmartDeviceLink/SDLHMICapabilities.m
+++ b/SmartDeviceLink/SDLHMICapabilities.m
@@ -51,6 +51,22 @@ NS_ASSUME_NONNULL_BEGIN
return [self.store sdl_objectForName:SDLRPCParameterNameAppServices ofClass:NSNumber.class error:nil];
}
+- (void)setDisplays:(nullable NSNumber<SDLBool> *)displays {
+ [self.store sdl_setObject:displays forName:SDLRPCParameterNameDisplays];
+}
+
+- (nullable NSNumber<SDLBool> *)displays {
+ return [self.store sdl_objectForName:SDLRPCParameterNameDisplays ofClass:NSNumber.class error:nil];
+}
+
+- (void)setSeatLocation:(nullable NSNumber<SDLBool> *)seatLocation {
+ [self.store sdl_setObject:seatLocation forName:SDLRPCParameterNameSeatLocation];
+}
+
+- (nullable NSNumber<SDLBool> *)seatLocation {
+ return [self.store sdl_objectForName:SDLRPCParameterNameSeatLocation ofClass:NSNumber.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLRPCParameterNames.h b/SmartDeviceLink/SDLRPCParameterNames.h
index 27af54f6a..ee1d5c3b3 100644
--- a/SmartDeviceLink/SDLRPCParameterNames.h
+++ b/SmartDeviceLink/SDLRPCParameterNames.h
@@ -150,6 +150,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameDialNumberEnabled;
extern SDLRPCParameterName const SDLRPCParameterNameDIDLocation;
extern SDLRPCParameterName const SDLRPCParameterNameDIDResult;
extern SDLRPCParameterName const SDLRPCParameterNameDimension;
+extern SDLRPCParameterName const SDLRPCParameterNameDisplays;
extern SDLRPCParameterName const SDLRPCParameterNameDisplayCapabilities;
extern SDLRPCParameterName const SDLRPCParameterNameDisplayMode;
extern SDLRPCParameterName const SDLRPCParameterNameDisplayModeUnitAvailable;
@@ -540,6 +541,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameSDLVersion;
extern SDLRPCParameterName const SDLRPCParameterNameSearchAddress;
extern SDLRPCParameterName const SDLRPCParameterNameSeatControlData;
extern SDLRPCParameterName const SDLRPCParameterNameSeatControlCapabilities;
+extern SDLRPCParameterName const SDLRPCParameterNameSeatLocation;
extern SDLRPCParameterName const SDLRPCParameterNameSeatLocationCapability;
extern SDLRPCParameterName const SDLRPCParameterNameSeats;
extern SDLRPCParameterName const SDLRPCParameterNameSecondaryColor;
diff --git a/SmartDeviceLink/SDLRPCParameterNames.m b/SmartDeviceLink/SDLRPCParameterNames.m
index f1eedf82e..aa8c2c733 100644
--- a/SmartDeviceLink/SDLRPCParameterNames.m
+++ b/SmartDeviceLink/SDLRPCParameterNames.m
@@ -147,6 +147,7 @@ SDLRPCParameterName const SDLRPCParameterNameDialNumberEnabled = @"dialNumberEna
SDLRPCParameterName const SDLRPCParameterNameDIDLocation = @"didLocation";
SDLRPCParameterName const SDLRPCParameterNameDIDResult = @"didResult";
SDLRPCParameterName const SDLRPCParameterNameDimension = @"dimension";
+SDLRPCParameterName const SDLRPCParameterNameDisplays = @"displays";
SDLRPCParameterName const SDLRPCParameterNameDisplayCapabilities = @"displayCapabilities";
SDLRPCParameterName const SDLRPCParameterNameDisplayLayout = @"displayLayout";
SDLRPCParameterName const SDLRPCParameterNameDisplayMode = @"displayMode";
@@ -535,6 +536,7 @@ SDLRPCParameterName const SDLRPCParameterNameSDLVersion = @"sdlVersion";
SDLRPCParameterName const SDLRPCParameterNameSearchAddress = @"searchAddress";
SDLRPCParameterName const SDLRPCParameterNameSeatControlData = @"seatControlData";
SDLRPCParameterName const SDLRPCParameterNameSeatControlCapabilities = @"seatControlCapabilities";
+SDLRPCParameterName const SDLRPCParameterNameSeatLocation = @"seatLocation";
SDLRPCParameterName const SDLRPCParameterNameSeatLocationCapability = @"seatLocationCapability";
SDLRPCParameterName const SDLRPCParameterNameSeats = @"seats";
SDLRPCParameterName const SDLRPCParameterNameSecondaryGraphic = @"secondaryGraphic";
diff --git a/SmartDeviceLink/SDLStreamingMediaConfiguration.h b/SmartDeviceLink/SDLStreamingMediaConfiguration.h
index 76ef5b3ff..3e4f91849 100644
--- a/SmartDeviceLink/SDLStreamingMediaConfiguration.h
+++ b/SmartDeviceLink/SDLStreamingMediaConfiguration.h
@@ -45,18 +45,10 @@ typedef NS_ENUM(NSUInteger, SDLCarWindowRenderingType) {
* Properties to use for applications that utilize the video encoder for streaming. See VTCompressionProperties.h for more details. For example, you can set kVTCompressionPropertyKey_ExpectedFrameRate to set your framerate. Setting the framerate this way will also set the framerate if you use CarWindow automatic streaming.
*
* Other properties you may want to try adjusting include kVTCompressionPropertyKey_AverageBitRate and kVTCompressionPropertyKey_DataRateLimits.
-
- @note Setting values can be overridden by StreamingMediaManager when `allowOverrideEncoderSettings` property is YES.
-
*/
@property (copy, nonatomic, nullable) NSDictionary<NSString *, id> *customVideoEncoderSettings;
/**
- When YES, the StreamingMediaManager will override encoder settings by the capability values returned from HMI. If you wish not to allow overriding encoder settings, set it to NO. Defaults to YES.
- */
-@property (assign, nonatomic) BOOL allowOverrideEncoderSettings;
-
-/**
Usable to change run time video stream setup behavior. Only use this and modify the results if you *really* know what you're doing. The head unit defaults are generally good.
*/
@property (weak, nonatomic, nullable) id<SDLStreamingMediaManagerDataSource> dataSource;
diff --git a/SmartDeviceLink/SDLStreamingMediaConfiguration.m b/SmartDeviceLink/SDLStreamingMediaConfiguration.m
index a3a06ed6f..41c7df822 100644
--- a/SmartDeviceLink/SDLStreamingMediaConfiguration.m
+++ b/SmartDeviceLink/SDLStreamingMediaConfiguration.m
@@ -37,7 +37,6 @@ NS_ASSUME_NONNULL_BEGIN
_carWindowRenderingType = SDLCarWindowRenderingTypeLayer;
_enableForcedFramerateSync = YES;
_allowMultipleViewControllerOrientations = NO;
- _allowOverrideEncoderSettings = YES;
return self;
}
@@ -69,7 +68,6 @@ NS_ASSUME_NONNULL_BEGIN
newConfig.carWindowRenderingType = self.carWindowRenderingType;
newConfig.enableForcedFramerateSync = self.enableForcedFramerateSync;
newConfig.allowMultipleViewControllerOrientations = self.allowMultipleViewControllerOrientations;
- newConfig.allowOverrideEncoderSettings = self.allowOverrideEncoderSettings;
return newConfig;
}
diff --git a/SmartDeviceLink/SDLStreamingVideoLifecycleManager.h b/SmartDeviceLink/SDLStreamingVideoLifecycleManager.h
index bd677b32b..ca6188904 100644
--- a/SmartDeviceLink/SDLStreamingVideoLifecycleManager.h
+++ b/SmartDeviceLink/SDLStreamingVideoLifecycleManager.h
@@ -136,12 +136,6 @@ NS_ASSUME_NONNULL_BEGIN
@property (assign, nonatomic) BOOL showVideoBackgroundDisplay;
-/**
- When YES, the StreamingMediaManager will override encoder settings by the capability values returned from HMI. Defaults to YES.
- */
-@property (assign, nonatomic) BOOL allowOverrideEncoderSettings;
-
-
- (instancetype)init NS_UNAVAILABLE;
/**
diff --git a/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m b/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m
index 202d1f1d9..1cde09fd6 100644
--- a/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m
+++ b/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m
@@ -66,7 +66,8 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N
@property (strong, nonatomic, readwrite, nullable) SDLVideoStreamingFormat *videoFormat;
@property (strong, nonatomic, nullable) SDLH264VideoEncoder *videoEncoder;
-@property (copy, nonatomic) NSDictionary<NSString *, id> *videoEncoderSettings;
+@property (strong, nonatomic) NSMutableDictionary *videoEncoderSettings;
+@property (copy, nonatomic) NSDictionary<NSString *, id> *customEncoderSettings;
@property (copy, nonatomic) NSArray<NSString *> *secureMakes;
@property (copy, nonatomic) NSString *connectedVehicleMake;
@@ -103,7 +104,9 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N
_appName = configuration.lifecycleConfig.appName;
_connectionManager = connectionManager;
- _videoEncoderSettings = configuration.streamingMediaConfig.customVideoEncoderSettings ?: SDLH264VideoEncoder.defaultVideoEncoderSettings;
+ _videoEncoderSettings = [NSMutableDictionary dictionary];
+ [_videoEncoderSettings addEntriesFromDictionary: SDLH264VideoEncoder.defaultVideoEncoderSettings];
+ _customEncoderSettings = configuration.streamingMediaConfig.customVideoEncoderSettings;
if (configuration.streamingMediaConfig.rootViewController != nil) {
NSAssert(configuration.streamingMediaConfig.enableForcedFramerateSync, @"When using CarWindow (rootViewController != nil), forceFrameRateSync must be YES");
@@ -125,7 +128,6 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N
_screenSize = SDLDefaultScreenSize;
_backgroundingPixelBuffer = NULL;
_showVideoBackgroundDisplay = YES;
- _allowOverrideEncoderSettings = configuration.streamingMediaConfig.allowOverrideEncoderSettings;
_preferredFormatIndex = 0;
_preferredResolutionIndex = 0;
@@ -346,13 +348,8 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N
// If we got a response, get the head unit's preferred formats and resolutions
weakSelf.preferredFormats = capability.supportedFormats;
weakSelf.preferredResolutions = @[capability.preferredResolution];
-
- if (weakSelf.allowOverrideEncoderSettings && capability.maxBitrate != nil) {
- NSNumber *bitrate = [[NSNumber alloc] initWithUnsignedLongLong:(capability.maxBitrate.unsignedLongLongValue * 1000)];
- NSMutableDictionary *settings = [[NSMutableDictionary alloc] init];
- [settings addEntriesFromDictionary: self.videoEncoderSettings];
- [settings setObject:bitrate forKey:(__bridge NSString *)kVTCompressionPropertyKey_AverageBitRate];
- weakSelf.videoEncoderSettings = settings;
+ if (capability.maxBitrate != nil) {
+ weakSelf.videoEncoderSettings[(__bridge NSString *) kVTCompressionPropertyKey_AverageBitRate] = [[NSNumber alloc] initWithUnsignedLongLong:(capability.maxBitrate.unsignedLongLongValue * 1000)];
}
if (weakSelf.dataSource != nil) {
@@ -379,6 +376,11 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N
SDLLogD(@"Using generic video capabilites, preferred formats: %@, resolutions: %@, haptics disabled", weakSelf.preferredFormats, weakSelf.preferredResolutions);
}
+ // Apply customEncoderSettings here. Note that value from HMI (such as maxBitrate) will be overwritten by custom settings.
+ for (id key in self.customEncoderSettings.keyEnumerator) {
+ self.videoEncoderSettings[key] = [self.customEncoderSettings valueForKey:key];
+ }
+
if (weakSelf.dataSource != nil) {
SDLLogV(@"Calling data source for modified preferred resolutions");
weakSelf.preferredResolutions = [weakSelf.dataSource resolutionFromHeadUnitPreferredResolution:weakSelf.preferredResolutions.firstObject];
diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLPresentKeyboardOperationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLPresentKeyboardOperationSpec.m
index 69db25e39..08424949d 100644
--- a/SmartDeviceLinkTests/DevAPISpecs/SDLPresentKeyboardOperationSpec.m
+++ b/SmartDeviceLinkTests/DevAPISpecs/SDLPresentKeyboardOperationSpec.m
@@ -379,14 +379,14 @@ describe(@"present keyboard operation", ^{
response.success = @YES;
[testConnectionManager respondToLastRequestWithResponse:response];
- expect(testOp.isExecuting).to(beFalse());
- expect(testOp.isFinished).to(beTrue());
- expect(testOp.isCancelled).to(beFalse());
-
[testOp dismissKeyboard];
});
it(@"should not attempt to send a cancel interaction", ^{
+ expect(testOp.isExecuting).to(beFalse());
+ expect(testOp.isFinished).to(beTrue());
+ expect(testOp.isCancelled).to(beFalse());
+
SDLCancelInteraction *lastRequest = testConnectionManager.receivedRequests.lastObject;
expect(lastRequest).toNot(beAnInstanceOf([SDLCancelInteraction class]));
});
@@ -397,10 +397,6 @@ describe(@"present keyboard operation", ^{
[testOp start];
[testOp cancel];
- expect(testOp.isExecuting).to(beTrue());
- expect(testOp.isFinished).to(beFalse());
- expect(testOp.isCancelled).to(beTrue());
-
[testOp dismissKeyboard];
});
@@ -408,23 +404,23 @@ describe(@"present keyboard operation", ^{
SDLCancelInteraction *lastRequest = testConnectionManager.receivedRequests.lastObject;
expect(lastRequest).toNot(beAnInstanceOf([SDLCancelInteraction class]));
- expect(hasCalledOperationCompletionHandler).toEventually(beFalse());
- expect(testOp.isExecuting).toEventually(beTrue());
- expect(testOp.isFinished).toEventually(beFalse());
- expect(testOp.isCancelled).toEventually(beTrue());
+ expect(hasCalledOperationCompletionHandler).to(beFalse());
+ expect(testOp.isExecuting).to(beTrue());
+ expect(testOp.isFinished).to(beFalse());
+ expect(testOp.isCancelled).to(beTrue());
});
});
context(@"If the operation has not started", ^{
beforeEach(^{
- expect(testOp.isExecuting).to(beFalse());
- expect(testOp.isFinished).to(beFalse());
- expect(testOp.isCancelled).to(beFalse());
-
[testOp dismissKeyboard];
});
it(@"should not attempt to send a cancel interaction", ^{
+ expect(testOp.isExecuting).to(beFalse());
+ expect(testOp.isFinished).to(beFalse());
+ expect(testOp.isCancelled).to(beTrue());
+
SDLCancelInteraction *lastRequest = testConnectionManager.receivedRequests.lastObject;
expect(lastRequest).to(beNil());
});
@@ -434,16 +430,14 @@ describe(@"present keyboard operation", ^{
[testOp start];
});
- it(@"should not attempt to send a cancel interaction", ^{
- SDLCancelInteraction *lastRequest = testConnectionManager.receivedRequests.lastObject;
- expect(lastRequest).to(beNil());
- });
-
- it(@"should finish", ^{
+ it(@"should not attempt to send a cancel interaction but should finish", ^{
expect(hasCalledOperationCompletionHandler).toEventually(beTrue());
expect(testOp.isExecuting).toEventually(beFalse());
expect(testOp.isFinished).toEventually(beTrue());
expect(testOp.isCancelled).toEventually(beTrue());
+
+ SDLCancelInteraction *lastRequest = testConnectionManager.receivedRequests.lastObject;
+ expect(lastRequest).to(beNil());
});
});
});
diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m
index 0fb214439..1f305fb08 100644
--- a/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m
+++ b/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m
@@ -93,7 +93,6 @@ describe(@"the streaming video manager", ^{
expect(@(streamingLifecycleManager.pixelBufferPool == NULL)).to(equal(@YES));
expect(@(streamingLifecycleManager.requestedEncryptionType)).to(equal(@(SDLStreamingEncryptionFlagNone)));
expect(@(streamingLifecycleManager.showVideoBackgroundDisplay)).to(equal(@YES));
- expect(@(streamingLifecycleManager.allowOverrideEncoderSettings)).to(equal(@YES));
expect(streamingLifecycleManager.currentAppState).to(equal(SDLAppStateActive));
expect(streamingLifecycleManager.currentVideoStreamState).to(equal(SDLVideoStreamManagerStateStopped));
expect(streamingLifecycleManager.videoFormat).to(beNil());
diff --git a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testAppAndVehicleIcons@2x.png b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testAppAndVehicleIcons@2x.png
new file mode 100644
index 000000000..fc9b8bff1
--- /dev/null
+++ b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testAppAndVehicleIcons@2x.png
Binary files differ
diff --git a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testLightBackgroundNoAppNoVehicleIcons@2x.png b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testLightBackgroundNoAppNoVehicleIcons@2x.png
new file mode 100644
index 000000000..fc9b8bff1
--- /dev/null
+++ b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testLightBackgroundNoAppNoVehicleIcons@2x.png
Binary files differ
diff --git a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testNoAppNoVehicleIcons@2x.png b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testNoAppNoVehicleIcons@2x.png
new file mode 100644
index 000000000..fc9b8bff1
--- /dev/null
+++ b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testNoAppNoVehicleIcons@2x.png
Binary files differ
diff --git a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyAppIcon@2x.png b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyAppIcon@2x.png
new file mode 100644
index 000000000..fc9b8bff1
--- /dev/null
+++ b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyAppIcon@2x.png
Binary files differ
diff --git a/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyVehicleIcon@2x.png b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyVehicleIcon@2x.png
new file mode 100644
index 000000000..fc9b8bff1
--- /dev/null
+++ b/SmartDeviceLinkTests/ReferenceImages_64/SDLLockScreenViewControllerSnapshotTests/testOnlyVehicleIcon@2x.png
Binary files differ
diff --git a/SmartDeviceLinkTests/SDLAsynchronousRPCOperationSpec.m b/SmartDeviceLinkTests/SDLAsynchronousRPCOperationSpec.m
index ad847378e..952efd471 100644
--- a/SmartDeviceLinkTests/SDLAsynchronousRPCOperationSpec.m
+++ b/SmartDeviceLinkTests/SDLAsynchronousRPCOperationSpec.m
@@ -80,8 +80,10 @@ describe(@"sending responses and notifications", ^{
it(@"should not send the rpc", ^{
testOperation = [[SDLAsynchronousRPCOperation alloc] initWithConnectionManager:testConnectionManager rpc:sendRPC];
+ [testOperationQueue setSuspended:YES];
[testOperationQueue addOperation:testOperation];
[testOperationQueue cancelAllOperations];
+ [testOperationQueue setSuspended:NO];
[NSThread sleepForTimeInterval:0.5];