mirror of
https://github.com/nasa/openmct.git
synced 2025-06-18 07:08:12 +00:00
[Timer] Back-end code cleanup and removed unused code
Cleaned up code by removing unused and unneeded code and the tests associated with it
This commit is contained in:
@ -1,74 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT, Copyright (c) 2009-2016, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT 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 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.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
define(
|
|
||||||
[],
|
|
||||||
function () {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Implements the "Start" and "Restart" action for timers.
|
|
||||||
*
|
|
||||||
* Sets the reference timestamp in a timer to the current
|
|
||||||
* time, such that it begins counting up.
|
|
||||||
*
|
|
||||||
* @implements {Action}
|
|
||||||
* @memberof platform/features/clock
|
|
||||||
* @constructor
|
|
||||||
* @param {Function} now a function which returns the current
|
|
||||||
* time (typically wrapping `Date.now`)
|
|
||||||
* @param {ActionContext} context the context for this action
|
|
||||||
*/
|
|
||||||
function AbstractTimerAction(now, context) {
|
|
||||||
this.domainObject = context.domainObject;
|
|
||||||
this.now = now;
|
|
||||||
}
|
|
||||||
|
|
||||||
AbstractTimerAction.prototype.perform = function () {
|
|
||||||
var domainObject = this.domainObject,
|
|
||||||
now = this.now;
|
|
||||||
|
|
||||||
function setTimestamp(model) {
|
|
||||||
//if we are resuming
|
|
||||||
if (model.pausedTime) {
|
|
||||||
var timeShift = now() - model.pausedTime;
|
|
||||||
model.timestamp = model.timestamp + timeShift;
|
|
||||||
} else {
|
|
||||||
model.timestamp = now();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function setTimerState(model) {
|
|
||||||
model.timerState = 'started';
|
|
||||||
}
|
|
||||||
|
|
||||||
function setPausedTime(model) {
|
|
||||||
model.pausedTime = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
return domainObject.useCapability('mutation', setTimestamp) &&
|
|
||||||
domainObject.useCapability('mutation', setTimerState) &&
|
|
||||||
domainObject.useCapability('mutation', setPausedTime);
|
|
||||||
};
|
|
||||||
|
|
||||||
return AbstractTimerAction;
|
|
||||||
}
|
|
||||||
);
|
|
@ -21,8 +21,8 @@
|
|||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
define(
|
define(
|
||||||
['./AbstractTimerAction'],
|
[],
|
||||||
function (AbstractTimerAction) {
|
function () {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements the "Pause" action for timers.
|
* Implements the "Pause" action for timers.
|
||||||
@ -30,7 +30,6 @@ define(
|
|||||||
* Sets the reference pausedTime in a timer to the current
|
* Sets the reference pausedTime in a timer to the current
|
||||||
* time, such that it stops counting up.
|
* time, such that it stops counting up.
|
||||||
*
|
*
|
||||||
* @extends {platform/features/clock.AbstractTimerAction}
|
|
||||||
* @implements {Action}
|
* @implements {Action}
|
||||||
* @memberof platform/features/clock
|
* @memberof platform/features/clock
|
||||||
* @constructor
|
* @constructor
|
||||||
@ -39,12 +38,10 @@ define(
|
|||||||
* @param {ActionContext} context the context for this action
|
* @param {ActionContext} context the context for this action
|
||||||
*/
|
*/
|
||||||
function PauseTimerAction(now, context) {
|
function PauseTimerAction(now, context) {
|
||||||
AbstractTimerAction.apply(this, [now, context]);
|
this.domainObject = context.domainObject;
|
||||||
|
this.now = now;
|
||||||
}
|
}
|
||||||
|
|
||||||
PauseTimerAction.prototype =
|
|
||||||
Object.create(AbstractTimerAction.prototype);
|
|
||||||
|
|
||||||
PauseTimerAction.appliesTo = function (context) {
|
PauseTimerAction.appliesTo = function (context) {
|
||||||
var model =
|
var model =
|
||||||
(context.domainObject && context.domainObject.getModel()) ||
|
(context.domainObject && context.domainObject.getModel()) ||
|
||||||
|
@ -21,8 +21,8 @@
|
|||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
define(
|
define(
|
||||||
['./AbstractTimerAction'],
|
[],
|
||||||
function (AbstractTimerAction) {
|
function () {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements the "Restart at 0" action.
|
* Implements the "Restart at 0" action.
|
||||||
@ -30,7 +30,6 @@ define(
|
|||||||
* Behaves the same as (and delegates functionality to)
|
* Behaves the same as (and delegates functionality to)
|
||||||
* the "Start" action.
|
* the "Start" action.
|
||||||
*
|
*
|
||||||
* @extends {platform/features/clock.AbstractTimerAction}
|
|
||||||
* @implements {Action}
|
* @implements {Action}
|
||||||
* @memberof platform/features/clock
|
* @memberof platform/features/clock
|
||||||
* @constructor
|
* @constructor
|
||||||
@ -39,12 +38,10 @@ define(
|
|||||||
* @param {ActionContext} context the context for this action
|
* @param {ActionContext} context the context for this action
|
||||||
*/
|
*/
|
||||||
function RestartTimerAction(now, context) {
|
function RestartTimerAction(now, context) {
|
||||||
AbstractTimerAction.apply(this, [now, context]);
|
this.domainObject = context.domainObject;
|
||||||
|
this.now = now;
|
||||||
}
|
}
|
||||||
|
|
||||||
RestartTimerAction.prototype =
|
|
||||||
Object.create(AbstractTimerAction.prototype);
|
|
||||||
|
|
||||||
RestartTimerAction.appliesTo = function (context) {
|
RestartTimerAction.appliesTo = function (context) {
|
||||||
var model =
|
var model =
|
||||||
(context.domainObject && context.domainObject.getModel()) ||
|
(context.domainObject && context.domainObject.getModel()) ||
|
||||||
|
@ -21,8 +21,8 @@
|
|||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
define(
|
define(
|
||||||
['./AbstractTimerAction'],
|
[],
|
||||||
function (AbstractTimerAction) {
|
function () {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements the "Start" action for timers.
|
* Implements the "Start" action for timers.
|
||||||
@ -30,7 +30,6 @@ define(
|
|||||||
* Sets the reference timestamp in a timer to the current
|
* Sets the reference timestamp in a timer to the current
|
||||||
* time, such that it begins counting up.
|
* time, such that it begins counting up.
|
||||||
*
|
*
|
||||||
* @extends {platform/features/clock.AbstractTimerAction}
|
|
||||||
* @implements {Action}
|
* @implements {Action}
|
||||||
* @memberof platform/features/clock
|
* @memberof platform/features/clock
|
||||||
* @constructor
|
* @constructor
|
||||||
@ -39,12 +38,10 @@ define(
|
|||||||
* @param {ActionContext} context the context for this action
|
* @param {ActionContext} context the context for this action
|
||||||
*/
|
*/
|
||||||
function StartTimerAction(now, context) {
|
function StartTimerAction(now, context) {
|
||||||
AbstractTimerAction.apply(this, [now, context]);
|
this.domainObject = context.domainObject;
|
||||||
|
this.now = now;
|
||||||
}
|
}
|
||||||
|
|
||||||
StartTimerAction.prototype =
|
|
||||||
Object.create(AbstractTimerAction.prototype);
|
|
||||||
|
|
||||||
StartTimerAction.appliesTo = function (context) {
|
StartTimerAction.appliesTo = function (context) {
|
||||||
var model =
|
var model =
|
||||||
(context.domainObject && context.domainObject.getModel()) ||
|
(context.domainObject && context.domainObject.getModel()) ||
|
||||||
@ -56,6 +53,33 @@ define(
|
|||||||
model.timerState !== 'started';
|
model.timerState !== 'started';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
StartTimerAction.prototype.perform = function () {
|
||||||
|
var domainObject = this.domainObject,
|
||||||
|
now = this.now;
|
||||||
|
|
||||||
|
function setTimestamp(model) {
|
||||||
|
//if we are resuming
|
||||||
|
if (model.pausedTime) {
|
||||||
|
var timeShift = now() - model.pausedTime;
|
||||||
|
model.timestamp = model.timestamp + timeShift;
|
||||||
|
} else {
|
||||||
|
model.timestamp = now();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function setTimerState(model) {
|
||||||
|
model.timerState = 'started';
|
||||||
|
}
|
||||||
|
|
||||||
|
function setPausedTime(model) {
|
||||||
|
model.pausedTime = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
return domainObject.useCapability('mutation', setTimestamp) &&
|
||||||
|
domainObject.useCapability('mutation', setTimerState) &&
|
||||||
|
domainObject.useCapability('mutation', setPausedTime);
|
||||||
|
};
|
||||||
|
|
||||||
return StartTimerAction;
|
return StartTimerAction;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -21,8 +21,8 @@
|
|||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
define(
|
define(
|
||||||
['./AbstractTimerAction'],
|
[],
|
||||||
function (AbstractTimerAction) {
|
function () {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements the "Stop" action for timers.
|
* Implements the "Stop" action for timers.
|
||||||
@ -30,7 +30,6 @@ define(
|
|||||||
* Sets the reference timestamp in a timer undefined,
|
* Sets the reference timestamp in a timer undefined,
|
||||||
* such that it is reset and makes no movements.
|
* such that it is reset and makes no movements.
|
||||||
*
|
*
|
||||||
* @extends {platform/features/clock.AbstractTimerAction}
|
|
||||||
* @implements {Action}
|
* @implements {Action}
|
||||||
* @memberof platform/features/clock
|
* @memberof platform/features/clock
|
||||||
* @constructor
|
* @constructor
|
||||||
@ -39,12 +38,10 @@ define(
|
|||||||
* @param {ActionContext} context the context for this action
|
* @param {ActionContext} context the context for this action
|
||||||
*/
|
*/
|
||||||
function StopTimerAction(now, context) {
|
function StopTimerAction(now, context) {
|
||||||
AbstractTimerAction.apply(this, [now, context]);
|
this.domainObject = context.domainObject;
|
||||||
|
this.now = now;
|
||||||
}
|
}
|
||||||
|
|
||||||
StopTimerAction.prototype =
|
|
||||||
Object.create(AbstractTimerAction.prototype);
|
|
||||||
|
|
||||||
StopTimerAction.appliesTo = function (context) {
|
StopTimerAction.appliesTo = function (context) {
|
||||||
var model =
|
var model =
|
||||||
(context.domainObject && context.domainObject.getModel()) ||
|
(context.domainObject && context.domainObject.getModel()) ||
|
||||||
|
@ -52,12 +52,9 @@ define(
|
|||||||
self.textValue = formatter(timeDelta);
|
self.textValue = formatter(timeDelta);
|
||||||
self.signValue = timeDelta < 0 ? "-" :
|
self.signValue = timeDelta < 0 ? "-" :
|
||||||
timeDelta >= 1000 ? "+" : "";
|
timeDelta >= 1000 ? "+" : "";
|
||||||
self.signCssClass = timeDelta < 0 ? "icon-minus" :
|
|
||||||
timeDelta >= 1000 ? "icon-plus" : "";
|
|
||||||
} else {
|
} else {
|
||||||
self.textValue = "";
|
self.textValue = "";
|
||||||
self.signValue = "";
|
self.signValue = "";
|
||||||
self.signCssClass = "";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -199,26 +196,6 @@ define(
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the CSS class to display the stop button
|
|
||||||
* @returns {string} cssclass to display
|
|
||||||
*/
|
|
||||||
TimerController.prototype.stopButtonCssClass = function () {
|
|
||||||
return this.stopAction ?
|
|
||||||
this.stopAction.getMetadata().cssclass : '';
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the text to show the stop button
|
|
||||||
* (e.g. in a tooltip)
|
|
||||||
* @returns {string} name of the action
|
|
||||||
*/
|
|
||||||
TimerController.prototype.stopButtonText = function () {
|
|
||||||
return this.stopAction ?
|
|
||||||
this.stopAction.getMetadata().name : '';
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Perform the action associated with the stop button.
|
* Perform the action associated with the stop button.
|
||||||
*/
|
*/
|
||||||
@ -238,15 +215,6 @@ define(
|
|||||||
return this.signValue;
|
return this.signValue;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the sign (+ or -) of the current timer value, as
|
|
||||||
* a CSS class.
|
|
||||||
* @returns {string} sign of the current timer value
|
|
||||||
*/
|
|
||||||
TimerController.prototype.signClass = function () {
|
|
||||||
return this.signCssClass;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the text to display for the current timer value.
|
* Get the text to display for the current timer value.
|
||||||
* @returns {string} current timer value
|
* @returns {string} current timer value
|
||||||
|
@ -1,75 +0,0 @@
|
|||||||
/*****************************************************************************
|
|
||||||
* Open MCT, Copyright (c) 2009-2016, United States Government
|
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
|
||||||
* Administration. All rights reserved.
|
|
||||||
*
|
|
||||||
* Open MCT 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 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.
|
|
||||||
*****************************************************************************/
|
|
||||||
|
|
||||||
define(
|
|
||||||
["../../src/actions/AbstractTimerAction"],
|
|
||||||
function (AbstractTimerAction) {
|
|
||||||
|
|
||||||
describe("A timer's start/restart action", function () {
|
|
||||||
var mockNow,
|
|
||||||
mockDomainObject,
|
|
||||||
testModel,
|
|
||||||
action;
|
|
||||||
|
|
||||||
function asPromise(value) {
|
|
||||||
return (value || {}).then ? value : {
|
|
||||||
then: function (callback) {
|
|
||||||
return asPromise(callback(value));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
beforeEach(function () {
|
|
||||||
mockNow = jasmine.createSpy('now');
|
|
||||||
mockDomainObject = jasmine.createSpyObj(
|
|
||||||
'domainObject',
|
|
||||||
['getCapability', 'useCapability']
|
|
||||||
);
|
|
||||||
|
|
||||||
mockDomainObject.useCapability.andCallFake(function (c, v) {
|
|
||||||
if (c === 'mutation') {
|
|
||||||
testModel = v(testModel) || testModel;
|
|
||||||
return asPromise(true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
testModel = {};
|
|
||||||
|
|
||||||
action = new AbstractTimerAction(mockNow, {
|
|
||||||
domainObject: mockDomainObject
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it("updates the model with a timestamp", function () {
|
|
||||||
mockNow.andReturn(12000);
|
|
||||||
action.perform();
|
|
||||||
expect(testModel.timestamp).toEqual(12000);
|
|
||||||
});
|
|
||||||
|
|
||||||
it("does not truncate milliseconds", function () {
|
|
||||||
mockNow.andReturn(42321);
|
|
||||||
action.perform();
|
|
||||||
expect(testModel.timestamp).toEqual(42321);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
);
|
|
@ -127,7 +127,6 @@ define(
|
|||||||
mockWindow.requestAnimationFrame.mostRecentCall.args[0]();
|
mockWindow.requestAnimationFrame.mostRecentCall.args[0]();
|
||||||
expect(controller.sign()).toEqual("");
|
expect(controller.sign()).toEqual("");
|
||||||
expect(controller.text()).toEqual("");
|
expect(controller.text()).toEqual("");
|
||||||
expect(controller.stopButtonText()).toEqual("");
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it("formats time to display relative to target", function () {
|
it("formats time to display relative to target", function () {
|
||||||
@ -164,18 +163,6 @@ define(
|
|||||||
expect(controller.buttonText()).toEqual("Pause");
|
expect(controller.buttonText()).toEqual("Pause");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("shows cssclass & name for the stop action", function () {
|
|
||||||
invokeWatch('domainObject', mockDomainObject);
|
|
||||||
expect(controller.stopButtonCssClass()).toEqual("");
|
|
||||||
expect(controller.stopButtonText()).toEqual("");
|
|
||||||
|
|
||||||
testModel.timestamp = 12321;
|
|
||||||
testModel.timerState = 'started';
|
|
||||||
invokeWatch('model.modified', 1);
|
|
||||||
expect(controller.stopButtonCssClass()).toEqual("icon-box");
|
|
||||||
expect(controller.stopButtonText()).toEqual("Stop");
|
|
||||||
});
|
|
||||||
|
|
||||||
it("performs correct start/pause/stop action on click", function () {
|
it("performs correct start/pause/stop action on click", function () {
|
||||||
//test start
|
//test start
|
||||||
invokeWatch('domainObject', mockDomainObject);
|
invokeWatch('domainObject', mockDomainObject);
|
||||||
|
Reference in New Issue
Block a user