From 00229f01b173d4b59e720ad8f3a52c65f5d4246a Mon Sep 17 00:00:00 2001 From: Victor Woeltjen Date: Thu, 18 Jun 2015 17:11:11 -0700 Subject: [PATCH] [Plot] Test plot view policy Test plot view policy, added in conjunction with image telemetry; WTD-1170. --- .../plot/test/policies/PlotViewPolicySpec.js | 79 +++++++++++++++++++ platform/features/plot/test/suite.json | 3 +- 2 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 platform/features/plot/test/policies/PlotViewPolicySpec.js diff --git a/platform/features/plot/test/policies/PlotViewPolicySpec.js b/platform/features/plot/test/policies/PlotViewPolicySpec.js new file mode 100644 index 0000000000..27c40221ef --- /dev/null +++ b/platform/features/plot/test/policies/PlotViewPolicySpec.js @@ -0,0 +1,79 @@ +/***************************************************************************** + * 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,describe,it,expect,beforeEach,jasmine,xit*/ + +define( + ["../../src/policies/PlotViewPolicy"], + function (PlotViewPolicy) { + "use strict"; + + describe("Plot view policy", function () { + var testView, + mockDomainObject, + mockTelemetry, + testMetadata, + policy; + + beforeEach(function () { + testView = { key: "plot" }; + testMetadata = {}; + mockDomainObject = jasmine.createSpyObj( + 'domainObject', + ['getId', 'getModel', 'getCapability'] + ); + mockTelemetry = jasmine.createSpyObj( + 'telemetry', + ['getMetadata'] + ); + mockDomainObject.getCapability.andCallFake(function (c) { + return c === 'telemetry' ? mockTelemetry : undefined; + }); + mockTelemetry.getMetadata.andReturn(testMetadata); + + policy = new PlotViewPolicy(); + }); + + it("allows the imagery view for domain objects with numeric telemetry", function () { + testMetadata.ranges = [ { key: "foo", format: "number" } ]; + expect(policy.allow(testView, mockDomainObject)).toBeTruthy(); + }); + + it("allows the imagery view for domain objects with unspecified telemetry", function () { + testMetadata.ranges = [ { key: "foo" } ]; + expect(policy.allow(testView, mockDomainObject)).toBeTruthy(); + }); + + it("disallows the imagery view for domain objects without image telemetry", function () { + testMetadata.ranges = [ { key: "foo", format: "somethingElse" } ]; + expect(policy.allow(testView, mockDomainObject)).toBeFalsy(); + }); + + it("allows other views", function () { + testView.key = "somethingElse"; + testMetadata.ranges = [ { key: "foo", format: "somethingElse" } ]; + expect(policy.allow(testView, mockDomainObject)).toBeTruthy(); + }); + + }); + } +); + diff --git a/platform/features/plot/test/suite.json b/platform/features/plot/test/suite.json index e3fa3fb796..323d53b6b3 100644 --- a/platform/features/plot/test/suite.json +++ b/platform/features/plot/test/suite.json @@ -18,6 +18,7 @@ "elements/PlotUpdater", "modes/PlotModeOptions", "modes/PlotOverlayMode", - "modes/PlotStackMode" + "modes/PlotStackMode", + "policies/PlotViewPolicy" ]