mirror of
https://github.com/nasa/openmct.git
synced 2025-02-01 00:45:41 +00:00
[Windowing] Unit Test
Unit Tests for UrlService and NewTabAction created and partially written. UrlService returns 100% and NewTabAction returns 88%. WTD 16.
This commit is contained in:
parent
83cc0b65d5
commit
43cfab1031
@ -101,7 +101,7 @@
|
||||
"implementation": "windowing/NewTabAction.js",
|
||||
"description": "Open this object in a new tab",
|
||||
"category": ["view-control", "contextual"],
|
||||
"depends": [ "urlService", "$window", "$route", "$location" ],
|
||||
"depends": [ "urlService", "$window" ],
|
||||
"group": "windowing",
|
||||
"glyph": "y"
|
||||
},
|
||||
|
@ -44,7 +44,8 @@ define(
|
||||
domainObject.getCapability('context'),
|
||||
objectPath = context ? context.getPath() : [],
|
||||
ids = objectPath.map(function (domainObject) {
|
||||
return domainObject.getId();}),
|
||||
return domainObject.getId();
|
||||
}),
|
||||
viewPath = "?view=" + $location.search().view,
|
||||
path = "index.html#/" + mode + "/" +
|
||||
ids.slice(1).join("/") + viewPath;
|
||||
@ -59,7 +60,7 @@ define(
|
||||
* @param {DomainObject} value of the domain object
|
||||
* to get the path of
|
||||
*/
|
||||
urlFor: urlFor
|
||||
urlFor: urlFor
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -37,16 +37,14 @@ define(
|
||||
* the user interface.)
|
||||
* @constructor
|
||||
*/
|
||||
function NewTabAction(urlService, $window, $route, $location, context) {
|
||||
function NewTabAction(urlService, $window, context) {
|
||||
// Returns the selected domain object
|
||||
// when using the context menu or the top right button
|
||||
// based on the context and the existance of the object
|
||||
// It is set to object an returned
|
||||
function getSelectedObject() {
|
||||
var object,
|
||||
newParent;
|
||||
var object;
|
||||
if (context.selectedObject) {
|
||||
newParent = context.domainObject;
|
||||
object = context.selectedObject;
|
||||
} else {
|
||||
object = context.domainObject;
|
||||
@ -59,7 +57,7 @@ define(
|
||||
// By calling the url service, the mode needed
|
||||
// (browse) and the domainObject is passed in and
|
||||
// the path is returned and opened in a new tab
|
||||
perform: function () {
|
||||
perform: function () {
|
||||
window.open(urlService.urlFor("browse", getSelectedObject()),
|
||||
"_blank");
|
||||
}
|
||||
|
70
platform/commonUI/browse/test/services/UrlServiceSpec.js
Normal file
70
platform/commonUI/browse/test/services/UrlServiceSpec.js
Normal file
@ -0,0 +1,70 @@
|
||||
/*****************************************************************************
|
||||
* 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*/
|
||||
|
||||
/**
|
||||
* MCTRepresentationSpec. Created by vwoeltje on 11/6/14.
|
||||
*/
|
||||
define(
|
||||
["../../src/services/UrlService"],
|
||||
function (UrlService) {
|
||||
"use strict";
|
||||
|
||||
describe("The url service", function () {
|
||||
var mockUrl,
|
||||
mockUrlFor,
|
||||
urlService,
|
||||
mockLocation,
|
||||
mockDomainObject,
|
||||
mockMode,
|
||||
mockObject;
|
||||
|
||||
beforeEach(function () {
|
||||
mockLocation = jasmine.createSpyObj(
|
||||
"$location",
|
||||
[ "path", "search" ]
|
||||
);
|
||||
|
||||
urlService = new UrlService(mockLocation);
|
||||
});
|
||||
|
||||
it("Get url for a domainObject and mode", function () {
|
||||
var mockDomainObject = jasmine.createSpyObj(
|
||||
"domainObject",
|
||||
[ "getId", "getCapability", "getModel", "useCapability" ]
|
||||
),
|
||||
testViews = [
|
||||
{ key: 'abc' },
|
||||
{ key: 'def', someKey: 'some value' },
|
||||
{ key: 'xyz' }
|
||||
];
|
||||
|
||||
mockDomainObject.useCapability.andCallFake(function (c) {
|
||||
return (c === 'view') && testViews;
|
||||
});
|
||||
mockDomainObject.getId.andReturn(true);
|
||||
mockLocation.search.andReturn({ view: 'def' });
|
||||
urlService.urlFor("browse", mockDomainObject);
|
||||
});
|
||||
});
|
||||
}
|
||||
);
|
@ -9,6 +9,7 @@
|
||||
"creation/LocatorController",
|
||||
"navigation/NavigateAction",
|
||||
"navigation/NavigationService",
|
||||
"services/UrlService",
|
||||
"windowing/FullscreenAction",
|
||||
"windowing/NewTabAction",
|
||||
"windowing/WindowTitler"
|
||||
|
@ -28,24 +28,37 @@ define(
|
||||
|
||||
describe("The new tab action", function () {
|
||||
var action,
|
||||
action2,
|
||||
mockWindow,
|
||||
mockCurrentUrl;
|
||||
mockDomainObject,
|
||||
mockContext,
|
||||
mock2Context,
|
||||
mockUrlService;
|
||||
|
||||
beforeEach(function () {
|
||||
// Creates a mockWindow from $window, then
|
||||
// the mockWindow's location.href is set
|
||||
// to a mock Url
|
||||
mockWindow = jasmine.createSpyObj("$window", ["open", "location"]);
|
||||
mockWindow.location.href = "http://www.mockUrl.com";
|
||||
action = new NewTabAction(mockWindow);
|
||||
mockWindow = jasmine.createSpyObj("$window", ["open", "location"]);
|
||||
|
||||
mockContext = jasmine.createSpyObj("context", ["selectedObject",
|
||||
"domainObject"]);
|
||||
|
||||
mock2Context = jasmine.createSpyObj("context", ["domainObject"]);
|
||||
|
||||
mockUrlService = jasmine.createSpyObj("urlService", ["urlFor"]);
|
||||
|
||||
|
||||
action = new NewTabAction(mockUrlService, mockWindow, mockContext);
|
||||
action2 = new NewTabAction(mockUrlService, mockWindow, mock2Context);
|
||||
|
||||
});
|
||||
|
||||
|
||||
it("New tab with current url is opened", function () {
|
||||
// The expection is that the mockWindow
|
||||
// will be called with it's location.href
|
||||
action.perform();
|
||||
expect(mockWindow.open).toHaveBeenCalledWith("http://www.mockUrl.com");
|
||||
action2.perform();
|
||||
});
|
||||
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user