diff --git a/platform/commonUI/mobile/test/DeviceClassifierSpec.js b/platform/commonUI/mobile/test/DeviceClassifierSpec.js index 8d1b9db11f..951c06f25a 100644 --- a/platform/commonUI/mobile/test/DeviceClassifierSpec.js +++ b/platform/commonUI/mobile/test/DeviceClassifierSpec.js @@ -87,7 +87,7 @@ define( mockDocument ); }); - + it("adds classes for matching, detected characteristics", function () { Object.keys(DeviceMatchers).filter(function (m) { return DeviceMatchers[m](mockAgentService); diff --git a/platform/commonUI/mobile/test/DeviceMatchersSpec.js b/platform/commonUI/mobile/test/DeviceMatchersSpec.js new file mode 100644 index 0000000000..df78e49a6a --- /dev/null +++ b/platform/commonUI/mobile/test/DeviceMatchersSpec.js @@ -0,0 +1,81 @@ +/***************************************************************************** + * Open MCT Web, Copyright (c) 2014-2015, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT Web is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT Web includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ +/*global define,Promise,describe,it,expect,beforeEach,waitsFor,jasmine*/ + + +define( + ["../src/DeviceMatchers"], + function (DeviceMatchers) { + 'use strict'; + + describe("DeviceMatchers", function () { + var mockAgentService; + + beforeEach(function () { + mockAgentService = jasmine.createSpyObj( + 'agentService', + [ + 'isMobile', + 'isPhone', + 'isTablet', + 'isPortrait', + 'isLandscape', + 'isTouch' + ] + ); + }); + + it("detects when a device is a desktop device", function () { + mockAgentService.isMobile.andReturn(false); + expect(DeviceMatchers.desktop(mockAgentService)) + .toBe(true); + mockAgentService.isMobile.andReturn(true); + expect(DeviceMatchers.desktop(mockAgentService)) + .toBe(false); + }); + + function method(deviceType) { + return "is" + deviceType[0].toUpperCase() + deviceType.slice(1); + } + + [ + "mobile", + "phone", + "tablet", + "landscape", + "portrait", + "landscape", + "touch" + ].forEach(function (deviceType) { + it("detects when a device is a " + deviceType + " device", function () { + mockAgentService[method(deviceType)].andReturn(true); + expect(DeviceMatchers[deviceType](mockAgentService)) + .toBe(true); + mockAgentService[method(deviceType)].andReturn(false); + expect(DeviceMatchers[deviceType](mockAgentService)) + .toBe(false); + }); + }); + + }); + } +); \ No newline at end of file diff --git a/platform/commonUI/mobile/test/suite.json b/platform/commonUI/mobile/test/suite.json index 0265644c9c..e72079e835 100644 --- a/platform/commonUI/mobile/test/suite.json +++ b/platform/commonUI/mobile/test/suite.json @@ -1,5 +1,6 @@ [ "AgentService", "DeviceClassifier", + "DeviceMatchers", "MCTDevice" ]