diff --git a/.gitignore b/.gitignore index aacf7f9728d..b8eea4a5bef 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ *.gzip *.tgz *.DS_Store +*.swp # Compiled CSS, unless directly added *.sass-cache diff --git a/README.md b/README.md index cce52a99218..c19be6ee1db 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,22 @@ Open MCT is now running, and can be accessed by pointing a web browser at [http: Documentation is available on the [Open MCT website](https://nasa.github.io/openmct/documentation/). The documentation can also be built locally. +### Examples + +The clearest examples for developing Open MCT plugins are in the +[tutorials](https://nasa.github.io/openmct/docs/tutorials/) provided in +our documentation. + +For a practical example of a telemetry adapter, see David Hudson's +[Kerbal Space Program plugin](https://github.com/hudsonfoo/kerbal-openmct), +which allows [Kerbal Space Program](https://kerbalspaceprogram.com) players +to build and use displays for their own missions in Open MCT. + +Additional examples are available in the `examples` hierarchy of this +repository; however, be aware that these examples are +[not fully-documented](https://github.com/nasa/openmct/issues/846), so +the tutorials will likely serve as a better starting point. + ### Building the Open MCT Documentation Locally Open MCT's documentation is generated by an [npm](https://www.npmjs.com/)-based build. It has additional dependencies that diff --git a/app.js b/app.js index 6b7b1bb6350..20429a3a5f4 100644 --- a/app.js +++ b/app.js @@ -67,10 +67,14 @@ }); app.use('/proxyUrl', function proxyRequest(req, res, next) { - console.log('Proxying request to: ', req.query.url); + var targetUrl = req.query.url; + var queryParameters = req.query; + console.log('Proxying request to: ', targetUrl); + delete queryParameters['url']; req.pipe(request({ - url: req.query.url, - strictSSL: false + url: targetUrl, + strictSSL: false, + qs: queryParameters }).on('error', next)).pipe(res); }); diff --git a/build-docs.sh b/build-docs.sh index ca7dc97c2e2..73d387bcff3 100755 --- a/build-docs.sh +++ b/build-docs.sh @@ -45,8 +45,8 @@ npm run docs echo "git clone $REPOSITORY_URL website" git clone $REPOSITORY_URL website || exit 1 -echo "cp -r $OUTPUT_DIRECTORY $WEBSITE_DIRECTORY/docs" -cp -r $OUTPUT_DIRECTORY $WEBSITE_DIRECTORY/docs +echo "cp -r $OUTPUT_DIRECTORY $WEBSITE_DIRECTORY" +cp -r $OUTPUT_DIRECTORY $WEBSITE_DIRECTORY echo "cd $WEBSITE_DIRECTORY" cd $WEBSITE_DIRECTORY || exit 1 diff --git a/docs/src/architecture/index.md b/docs/src/architecture/index.md index a4586a3542f..6f2fbcfcef4 100644 --- a/docs/src/architecture/index.md +++ b/docs/src/architecture/index.md @@ -6,7 +6,7 @@ overall architecture of Open MCT. The target audience includes: * _Platform maintainers_: Individuals involved in developing, - extending, and maintaing capabilities of the platform. + extending, and maintaining capabilities of the platform. * _Integration developers_: Individuals tasked with integrated Open MCT into a larger system, who need to understand its inner workings sufficiently to complete this integration. @@ -63,7 +63,7 @@ These layers are: application-specific knowledge; at this layer, we have only established an abstraction by which different software components may communicate and/or interact. -* [_Platform_](platform.md): The platform layer defines the general look, +* [_Platform_](platform.md): The platform layer defines the general look, feel, and behavior of Open MCT. This includes user-facing components like Browse mode and Edit mode, as well as underlying elements of the information model and the general service infrastructure. @@ -74,5 +74,3 @@ These layers are: typically consists of a mix of custom plug-ins to Open MCT, as well as optional features (such as Plot view) included alongside the platform. - - diff --git a/docs/src/architecture/platform.md b/docs/src/architecture/platform.md index 1f5e087a119..f7f0c48cdab 100644 --- a/docs/src/architecture/platform.md +++ b/docs/src/architecture/platform.md @@ -1,6 +1,6 @@ # Overview -The Open MCT platform utilizes the [framework layer](Framework.md) +The Open MCT platform utilizes the [framework layer](framework.md) to provide an extensible baseline for applications which includes: * A common user interface (and user interface paradigm) for dealing with @@ -38,7 +38,7 @@ in __any of these tiers__. are initiated from here and invoke behavior in the presentation layer. HTML  templates are written in Angular’s template syntax; see the [Angular documentation on templates](https://docs.angularjs.org/guide/templates)​.  These describe the page as actually seen by the user. Conceptually,  - stylesheets (controlling the look­and­feel of the rendered templates) belong  + stylesheets (controlling the look-and-feel of the rendered templates) belong  in this grouping as well.  * [_Presentation layer_](#presentation-layer): The presentation layer is responsible for updating (and providing information to update) @@ -48,7 +48,7 @@ in __any of these tiers__. display. * [_Information model_](#information-model): ​Provides a common (within Open MCT  Web) set of interfaces for dealing with “things” ­ domain objects ­ within the  - system. User­facing concerns in a Open MCT Web application are expressed as  + system. User-facing concerns in a Open MCT Web application are expressed as  domain objects; examples include folders (used to organize other domain  objects), layouts (used to build displays), or telemetry points (used as  handles for streams of remote measurements.) These domain objects expose a  diff --git a/docs/src/design/proposals/APIRedesign.md b/docs/src/design/proposals/APIRedesign.md index d14f4ce469a..e6230823ed6 100644 --- a/docs/src/design/proposals/APIRedesign.md +++ b/docs/src/design/proposals/APIRedesign.md @@ -180,7 +180,7 @@ to develop a tabular visualization plugin. * Add a model property to the bundle.json to take in "Hello World" as a parameter and pass through to the controller/view -### Open Source Contributer +### Open Source Contributor * [Failures are non-graceful when services are missing.]( https://github.com/nasa/openmctweb/issues/79) @@ -214,7 +214,7 @@ to an entirely different framework. We can expect AngularJS 1.x to reach end-of-life reasonably soon thereafter. -Our API is currently a superset of Angular's API, so this directly effects +Our API is currently a superset of Angular's API, so this directly affects our API. Specifically, API changes should be oriented towards removing or reducing the Angular dependency. diff --git a/docs/src/design/proposals/APIRedesign_PeteRichards.md b/docs/src/design/proposals/APIRedesign_PeteRichards.md index 3fa78fe2ed7..dce80c41aec 100644 --- a/docs/src/design/proposals/APIRedesign_PeteRichards.md +++ b/docs/src/design/proposals/APIRedesign_PeteRichards.md @@ -3,7 +3,7 @@ **Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - [Reducing interface depth (the bundle.json version)](#reducing-interface-depth-the-bundlejson-version) - - [Imperitive component registries](#imperitive-component-registries) + - [Imperitive component registries](#imperative-component-registries) - [Get rid of "extension category" concept.](#get-rid-of-extension-category-concept) - [Reduce number and depth of extension points](#reduce-number-and-depth-of-extension-points) - [Composite services should not be the default](#composite-services-should-not-be-the-default) @@ -30,11 +30,11 @@ # Reducing interface depth (the bundle.json version) -## Imperitive component registries +## Imperative component registries Transition component registries to javascript, get rid of bundle.json and bundles.json. Prescribe a method for application configuration, but allow flexibility in how application configuration is defined. -Register components in an imperitive fashion, see angularApp.factory, angularApp.controller, etc. Alternatively, implement our own application object with new registries and it's own form of registering objects. +Register components in an imperative fashion, see angularApp.factory, angularApp.controller, etc. Alternatively, implement our own application object with new registries and it's own form of registering objects. ## Get rid of "extension category" concept. @@ -126,9 +126,9 @@ Allow developers to use whatever module loading system they'd like to use, while ## Use gulp or grunt for standard tooling -Using gulp or grunt as a task runner would bring us in line with standard web developer workflows and help standardize rendering, deployment, and packaging. Additional tools can be added to the workflow at low cost, simplifying the set up of developer environments. +Using gulp or grunt as a task runner would bring us in line with standard web developer workflows and help standardize rendering, deployment, and packaging. Additional tools can be added to the workflow at low cost, simplifying the setup of developer environments. -Gulp and grunt provide useful developer tooling such as live reload, automatic scss/less/etc compiliation, and ease of extensibility for standard production build processes. They're key in decoupling code. +Gulp and grunt provide useful developer tooling such as live reload, automatic scss/less/etc compilation, and ease of extensibility for standard production build processes. They're key in decoupling code. ## Package openmctweb as single versioned file. diff --git a/docs/src/guide/index.md b/docs/src/guide/index.md index 081f1df45a5..308ca6d2c15 100644 --- a/docs/src/guide/index.md +++ b/docs/src/guide/index.md @@ -643,7 +643,7 @@ to be passed along by other services. ## Domain Objects Domain objects are the most fundamental component of Open MCT's information -model. A domain object is some distinct thing relevant to a user's work flow, +model. A domain object is some distinct thing relevant to a user's workflow, such as a telemetry channel, display, or similar. Open MCT is a tool for viewing, browsing, manipulating, and otherwise interacting with a graph of domain objects. @@ -981,7 +981,7 @@ Examples of gestures included in the platform are: composition. * `drop`: For representations that can be drop targets for drag-and-drop composition. -* `menu`: For representations that can be used to pop up a context menu. +* `menu`: For representations that can be used to popup a context menu. Gesture definitions have a property `key` which is used as a machine-readable identifier for the gesture (e.g. `drag`, `drop`, `menu` above.) @@ -1153,7 +1153,7 @@ For example, the _My Items_ folder is added as an extension of this category. Extensions of this category should have the following properties: -* `id`: The machine-readable identifier for the domaiwn object being exposed. +* `id`: The machine-readable identifier for the domain object being exposed. * `model`: The model, as a JSON object, for the domain object being exposed. ## Stylesheets Category diff --git a/docs/src/process/testing/plan.md b/docs/src/process/testing/plan.md index 47ab60ee346..34e75855c9e 100644 --- a/docs/src/process/testing/plan.md +++ b/docs/src/process/testing/plan.md @@ -102,7 +102,7 @@ perform: * A relevant subset of [_user testing_](procedures.md#user-test-procedures) identified by the acting [project manager](../cycle.md#roles). -* [_Long-duration testing_](procedures.md#long-duration-testng) +* [_Long-duration testing_](procedures.md#long-duration-testing) (specifically, for 24 hours.) Issues are reported as a product of both forms of testing. diff --git a/docs/src/tutorials/index.md b/docs/src/tutorials/index.md index 84c571bec8d..0e48fcf11fc 100644 --- a/docs/src/tutorials/index.md +++ b/docs/src/tutorials/index.md @@ -48,17 +48,17 @@ for a more general overview of how to run and deploy a Open MCT application. First step is to check out Open MCT from the source repository. -`git clone https://github.com/nasa/openmctweb.git openmctweb` +`git clone https://github.com/nasa/openmct.git openmct` This will create a copy of the Open MCT source code repository in the folder -`openmctweb` (relative to the path from which you ran the command.) +`openmct` (relative to the path from which you ran the command.) If you have a repository URL, use that as the "path to repo" above. Alternately, if you received Open MCT as a git bundle, the path to that bundle on the local filesystem can be used instead. At this point, it will also be useful to branch off of Open MCT v0.6.2 (which was used when writing these tutorials) to begin adding plugins. - cd openmctweb + cd openmct git branch open-v0.6.2 git checkout @@ -79,7 +79,7 @@ changes to stylesheets, or you are running the minified version of the app The next step is to run a web server so that you can view the Open MCT client (including the plugins you add to it) in browser. Any web server can -be used for hosting OpenMCTWeb, and a trivial web server is provided in this +be used for hosting Open MCT, and a trivial web server is provided in this package for the purposes of running the tutorials. The provided web server should not be used in a production environment @@ -91,7 +91,7 @@ To run the tutorial web server Once running, you should be able to view Open MCT from your browser at http://localhost:8080/ (assuming the web server is running on port 8080, -and OpenMCTWeb is installed at the server's root path). +and Open MCT is installed at the server's root path). [Google Chrome](https://www.google.com/chrome/) is recommended for these tutorials, as Chrome is Open MCT's "test-to" browser. The browser cache can sometimes interfere with development (masking changes by @@ -130,7 +130,6 @@ to this plugin as tutorials/todo as well.) We will start with an "empty bundle", one which exposes no extensions - which looks like: ```diff - define([ 'legacyRegistry' ], function ( @@ -144,7 +143,6 @@ define([ } }); }); - ``` __tutorials/todo/bundle.js__ @@ -348,7 +346,8 @@ deeper explanation of domain objects, see the Open MCT Developer Guide.) In the case of our to-do list feature, the to-do list itself is the thing we'll want users to be able to create and edit. So, we will add that as a new type in our bundle definition: -```diff + +```diff define([ 'legacyRegistry' ], function ( @@ -370,7 +369,6 @@ define([ + ]} }); }); - ``` __tutorials/todo/bundle.js__ @@ -427,7 +425,6 @@ are stored by convention.) ``` - __tutorials/todo/res/templates/todo.html__ A summary of what's included: @@ -573,6 +570,7 @@ We will define that in an AMD module (see http://requirejs.org/docs/whyamd.html) in the directory `tutorials/todo/src/controllers` (`src` is, by default, the directory where bundle-related source code is kept, and controllers is where Angular controllers are stored by convention.) + ```diff define(function () { function TodoController($scope) { @@ -971,6 +969,7 @@ by the tool bar we've defined. Additionally, we need to make changes to our template to select specific tasks in response to some user gesture. Here, we will select tasks when a user clicks the description. + ```diff
@@ -996,6 +995,7 @@ __tutorials/todo/res/templates/todo.html__ Finally, the `TodoController` uses the `dialogService` now, so we need to declare that dependency in its extension definition: + ```diff define([ 'legacyRegistry', @@ -1248,7 +1248,6 @@ another file to the res directory of our bundle; this time, it is `css/todo.css` font-style: italic; } ``` - __tutorials/todo/res/css/todo.css__ Here, we have defined classes and appearances for: @@ -1261,6 +1260,7 @@ Here, we have defined classes and appearances for: To include this CSS file in our running instance of Open MCT, we need to declare it in our bundle definition, this time as an extension of category `stylesheets`: + ```diff define([ 'legacyRegistry', @@ -1430,7 +1430,6 @@ define([ }); }); ``` - __tutorials/bargraph/bundle.js__ The view definition should look familiar after the To-Do List tutorial, with @@ -1499,6 +1498,7 @@ The third is for labels along the horizontal axis, which will indicate which bar corresponds to which telemetry point. Inline `style` attributes are used wherever dynamic positioning (handled by a script) is anticipated. The corresponding CSS file which styles and positions these elements: + ```diff .example-bargraph { position: absolute; @@ -1596,6 +1596,7 @@ actual telemetry data in subsequent steps.) Notably, we will not try to show telemetry data after this step. To support this, we will add a new controller which supports our Bar Graph view: + ```diff define(function () { function BarGraphController($scope, telemetryHandler) { @@ -1647,6 +1648,7 @@ Whenever the telemetry handler invokes its callbacks, we update the set of telemetry objects in view, as well as the width for each bar. We will also utilize this from our template: + ```diff +
@@ -2346,6 +2348,7 @@ add a top-level object which will serve as a container; in the next step, we will populate this with the contents of the telemetry dictionary (which we will retrieve from the server.) +```diff define([ 'legacyRegistry' ], function ( @@ -2375,6 +2378,7 @@ define([ } }); }); +``` __tutorials/telemetry/bundle.js__ Here, we've created our initial telemetry plugin. This exposes a new domain @@ -2469,7 +2473,6 @@ define([ }; }); ``` - __main.js__ ...we will be able to reload Open MCT and see that it is present: @@ -2486,43 +2489,45 @@ server. Our first step will be to add a service that will handle interactions with the server; this will not be used by Open MCT directly, but will be used by subsequent components we add. - /*global define,WebSocket*/ - - define( - [], - function () { - "use strict"; - - function ExampleTelemetryServerAdapter($q, wsUrl) { - var ws = new WebSocket(wsUrl), - dictionary = $q.defer(); - - // Handle an incoming message from the server - ws.onmessage = function (event) { - var message = JSON.parse(event.data); - - switch (message.type) { - case "dictionary": - dictionary.resolve(message.value); - break; - } - }; - - // Request dictionary once connection is established - ws.onopen = function () { - ws.send("dictionary"); - }; - - return { - dictionary: function () { - return dictionary.promise; - } - }; - } - - return ExampleTelemetryServerAdapter; +```diff +/*global define,WebSocket*/ + +define( + [], + function () { + "use strict"; + + function ExampleTelemetryServerAdapter($q, wsUrl) { + var ws = new WebSocket(wsUrl), + dictionary = $q.defer(); + + // Handle an incoming message from the server + ws.onmessage = function (event) { + var message = JSON.parse(event.data); + + switch (message.type) { + case "dictionary": + dictionary.resolve(message.value); + break; + } + }; + + // Request dictionary once connection is established + ws.onopen = function () { + ws.send("dictionary"); + }; + + return { + dictionary: function () { + return dictionary.promise; + } + }; } - ); + + return ExampleTelemetryServerAdapter; + } +); +``` __tutorials/telemetry/src/ExampleTelemetryServerAdapter.js__ When created, this service initiates a connection to the server, and begins @@ -2539,86 +2544,88 @@ subsystems. This means that we need to convert the data from the dictionary into domain object models, and expose these to Open MCT via a `modelService`. - /*global define*/ - - define( - function () { - "use strict"; - - var PREFIX = "example_tlm:", - FORMAT_MAPPINGS = { - float: "number", - integer: "number", - string: "string" - }; - - function ExampleTelemetryModelProvider(adapter, $q) { - var modelPromise, empty = $q.when({}); - - // Check if this model is in our dictionary (by prefix) - function isRelevant(id) { - return id.indexOf(PREFIX) === 0; - } - - // Build a domain object identifier by adding a prefix - function makeId(element) { - return PREFIX + element.identifier; +```diff +/*global define*/ + +define( + function () { + "use strict"; + + var PREFIX = "example_tlm:", + FORMAT_MAPPINGS = { + float: "number", + integer: "number", + string: "string" + }; + + function ExampleTelemetryModelProvider(adapter, $q) { + var modelPromise, empty = $q.when({}); + + // Check if this model is in our dictionary (by prefix) + function isRelevant(id) { + return id.indexOf(PREFIX) === 0; + } + + // Build a domain object identifier by adding a prefix + function makeId(element) { + return PREFIX + element.identifier; + } + + // Create domain object models from this dictionary + function buildTaxonomy(dictionary) { + var models = {}; + + // Create & store a domain object model for a measurement + function addMeasurement(measurement) { + var format = FORMAT_MAPPINGS[measurement.type]; + models[makeId(measurement)] = { + type: "example.measurement", + name: measurement.name, + telemetry: { + key: measurement.identifier, + ranges: [{ + key: "value", + name: "Value", + units: measurement.units, + format: format + }] + } + }; } - - // Create domain object models from this dictionary - function buildTaxonomy(dictionary) { - var models = {}; - - // Create & store a domain object model for a measurement - function addMeasurement(measurement) { - var format = FORMAT_MAPPINGS[measurement.type]; - models[makeId(measurement)] = { - type: "example.measurement", - name: measurement.name, - telemetry: { - key: measurement.identifier, - ranges: [{ - key: "value", - name: "Value", - units: measurement.units, - format: format - }] - } - }; - } - - // Create & store a domain object model for a subsystem - function addSubsystem(subsystem) { - var measurements = - (subsystem.measurements || []); - models[makeId(subsystem)] = { - type: "example.subsystem", - name: subsystem.name, - composition: measurements.map(makeId) - }; - measurements.forEach(addMeasurement); - } - - (dictionary.subsystems || []).forEach(addSubsystem); - - return models; + + // Create & store a domain object model for a subsystem + function addSubsystem(subsystem) { + var measurements = + (subsystem.measurements || []); + models[makeId(subsystem)] = { + type: "example.subsystem", + name: subsystem.name, + composition: measurements.map(makeId) + }; + measurements.forEach(addMeasurement); } - - // Begin generating models once the dictionary is available - modelPromise = adapter.dictionary().then(buildTaxonomy); - - return { - getModels: function (ids) { - // Return models for the dictionary only when they - // are relevant to the request. - return ids.some(isRelevant) ? modelPromise : empty; - } - }; + + (dictionary.subsystems || []).forEach(addSubsystem); + + return models; } - - return ExampleTelemetryModelProvider; + + // Begin generating models once the dictionary is available + modelPromise = adapter.dictionary().then(buildTaxonomy); + + return { + getModels: function (ids) { + // Return models for the dictionary only when they + // are relevant to the request. + return ids.some(isRelevant) ? modelPromise : empty; + } + }; } - ); + + return ExampleTelemetryModelProvider; + } +); +``` __tutorials/telemetry/src/ExampleTelemetryModelProvider.js__ This script implements a `provider` for `modelService`; the `modelService` is a @@ -2671,55 +2678,57 @@ This allows our telemetry dictionary to be expressed as domain object models fix this, we will need another script which will add these subsystems to the root-level object we added in Step 1. - /*global define*/ - - define( - function () { - "use strict"; - - var TAXONOMY_ID = "example:sc", - PREFIX = "example_tlm:"; - - function ExampleTelemetryInitializer(adapter, objectService) { - // Generate a domain object identifier for a dictionary element - function makeId(element) { - return PREFIX + element.identifier; +```diff +/*global define*/ + +define( + function () { + "use strict"; + + var TAXONOMY_ID = "example:sc", + PREFIX = "example_tlm:"; + + function ExampleTelemetryInitializer(adapter, objectService) { + // Generate a domain object identifier for a dictionary element + function makeId(element) { + return PREFIX + element.identifier; + } + + // When the dictionary is available, add all subsystems + // to the composition of My Spacecraft + function initializeTaxonomy(dictionary) { + // Get the top-level container for dictionary objects + // from a group of domain objects. + function getTaxonomyObject(domainObjects) { + return domainObjects[TAXONOMY_ID]; } - - // When the dictionary is available, add all subsystems - // to the composition of My Spacecraft - function initializeTaxonomy(dictionary) { - // Get the top-level container for dictionary objects - // from a group of domain objects. - function getTaxonomyObject(domainObjects) { - return domainObjects[TAXONOMY_ID]; - } - - // Populate - function populateModel(taxonomyObject) { - return taxonomyObject.useCapability( - "mutation", - function (model) { - model.name = - dictionary.name; - model.composition = - dictionary.subsystems.map(makeId); - } - ); - } - - // Look up My Spacecraft, and populate it accordingly. - objectService.getObjects([TAXONOMY_ID]) - .then(getTaxonomyObject) - .then(populateModel); + + // Populate + function populateModel(taxonomyObject) { + return taxonomyObject.useCapability( + "mutation", + function (model) { + model.name = + dictionary.name; + model.composition = + dictionary.subsystems.map(makeId); + } + ); } - - adapter.dictionary().then(initializeTaxonomy); + + // Look up My Spacecraft, and populate it accordingly. + objectService.getObjects([TAXONOMY_ID]) + .then(getTaxonomyObject) + .then(populateModel); } - - return ExampleTelemetryInitializer; + + adapter.dictionary().then(initializeTaxonomy); } - ); + + return ExampleTelemetryInitializer; + } +); +``` __tutorials/telemetry/src/ExampleTelemetryInitializer.js__ At the conclusion of Step 1, the top-level My Spacecraft object was empty. This @@ -2737,14 +2746,14 @@ with the platform): ```diff define([ 'legacyRegistry', - './src/ExampleTelemetryServerAdapter', - './src/ExampleTelemetryInitializer', - './src/ExampleTelemetryModelProvider' ++ './src/ExampleTelemetryServerAdapter', ++ './src/ExampleTelemetryInitializer', ++ './src/ExampleTelemetryModelProvider' ], function ( legacyRegistry, - ExampleTelemetryServerAdapter, - ExampleTelemetryInitializer, - ExampleTelemetryModelProvider ++ ExampleTelemetryServerAdapter, ++ ExampleTelemetryInitializer, ++ ExampleTelemetryModelProvider ) { legacyRegistry.register("tutorials/telemetry", { "name": "Example Telemetry Adapter", @@ -2755,7 +2764,7 @@ define([ "key": "example.spacecraft", "glyph": "o" }, - { ++ { + "name": "Subsystem", + "key": "example.subsystem", + "glyph": "o", @@ -2934,6 +2943,7 @@ identifier, the pending promise is resolved. This `history` method will be used by a `telemetryService` provider which we will implement: + ```diff /*global define*/ @@ -3019,6 +3029,7 @@ Finally, note that we also have a `subscribe` method, to satisfy the interface o `telemetryService`, but this `subscribe` method currently does nothing. This script uses an `ExampleTelemetrySeries` class, which looks like: + ```diff /*global define*/ @@ -3050,6 +3061,7 @@ This takes the array of telemetry values (as returned by the server) and wraps it with the interface expected by the platform (the methods shown.) Finally, we expose this `telemetryService` provider declaratively: + ```diff define([ 'legacyRegistry', @@ -3316,7 +3328,6 @@ define( } ); ``` - __tutorials/telemetry/src/ExampleTelemetryProvider.js__ A quick summary of these changes: diff --git a/example/plotOptions/bundle.js b/example/plotOptions/bundle.js index 66a2e819371..ae47d2a97c2 100644 --- a/example/plotOptions/bundle.js +++ b/example/plotOptions/bundle.js @@ -129,7 +129,7 @@ define([ { "name": "Period", "control": "textfield", - "cssclass": "l-small l-numeric", + "cssclass": "l-input-sm l-numeric", "key": "period", "required": true, "property": [ diff --git a/gulpfile.js b/gulpfile.js index fab0f056e04..bf522248635 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -42,6 +42,7 @@ var gulp = require('gulp'), main: 'main.js', dist: 'dist', assets: 'dist/assets', + reports: 'dist/reports', scss: ['./platform/**/*.scss', './example/**/*.scss'], scripts: [ 'main.js', 'platform/**/*.js', 'src/**/*.js' ], specs: [ 'platform/**/*Spec.js', 'src/**/*Spec.js' ], @@ -102,6 +103,11 @@ gulp.task('stylesheets', function () { .pipe(gulp.dest(__dirname)); }); +gulp.task('nsp', function (done) { + var nsp = require('gulp-nsp'); + nsp({package: __dirname + '/package.json'}, done); +}); + gulp.task('lint', function () { var nonspecs = paths.specs.map(function (glob) { return "!" + glob; @@ -112,6 +118,10 @@ gulp.task('lint', function () { .pipe(jshint({ jasmine: true })); return merge(scriptLint, specLint) + .pipe(jshint.reporter('gulp-jshint-html-reporter', { + filename: paths.reports + '/lint/jshint-report.html', + createMissingFolders : true + })) .pipe(jshint.reporter('default')) .pipe(jshint.reporter('fail')); }); @@ -147,6 +157,6 @@ gulp.task('develop', ['serve', 'stylesheets', 'watch']); gulp.task('install', [ 'static', 'scripts' ]); -gulp.task('verify', [ 'lint', 'test', 'checkstyle' ]); +gulp.task('verify', [ 'lint', 'test', 'checkstyle', 'nsp' ]); gulp.task('build', [ 'verify', 'install' ]); diff --git a/karma.conf.js b/karma.conf.js index 17889dfe431..e682ec6d86b 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -81,7 +81,7 @@ module.exports = function(config) { coverageReporter: { dir: process.env.CIRCLE_ARTIFACTS ? process.env.CIRCLE_ARTIFACTS + '/coverage' : - "dist/coverage", + "dist/reports/coverage", check: { global: { lines: 80 @@ -91,13 +91,13 @@ module.exports = function(config) { // HTML test reporting. htmlReporter: { - outputDir: "target/tests", + outputDir: "dist/reports/tests", preserveDescribeNesting: true, foldAll: false }, junitReporter: { - outputDir: process.env.CIRCLE_TEST_REPORTS || 'target/junit' + outputDir: process.env.CIRCLE_TEST_REPORTS || 'dist/reports/junit' }, // Continuous Integration mode. diff --git a/package.json b/package.json index 3a58a4af19b..491904fe4dc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openmct", - "version": "0.11.1-SNAPSHOT", + "version": "0.11.3-SNAPSHOT", "description": "The Open MCT core platform", "dependencies": { "express": "^4.13.1", @@ -14,6 +14,8 @@ "gulp": "^3.9.0", "gulp-jscs": "^3.0.2", "gulp-jshint": "^2.0.0", + "gulp-jshint-html-reporter": "^0.1.3", + "gulp-nsp": "^2.4.2", "gulp-rename": "^1.2.2", "gulp-replace-task": "^0.11.0", "gulp-requirejs-optimize": "^0.3.1", diff --git a/platform/commonUI/edit/src/creation/CreateWizard.js b/platform/commonUI/edit/src/creation/CreateWizard.js index 37ef530dbd6..6921ca86696 100644 --- a/platform/commonUI/edit/src/creation/CreateWizard.js +++ b/platform/commonUI/edit/src/creation/CreateWizard.js @@ -90,7 +90,9 @@ define( // Ensure there is always a "save in" section if (includeLocation) { sections.push({ - name: 'Location', rows: [{ + name: 'Location', + cssclass: "grows", + rows: [{ name: "Save In", control: "locator", validate: validateLocation, diff --git a/platform/commonUI/edit/src/creation/LocatorController.js b/platform/commonUI/edit/src/creation/LocatorController.js index 54e56597844..53bfc3feb14 100644 --- a/platform/commonUI/edit/src/creation/LocatorController.js +++ b/platform/commonUI/edit/src/creation/LocatorController.js @@ -50,10 +50,7 @@ define( $scope.rootObject = (context && context.getRoot()) || $scope.rootObject; }, 0); - } else if (!contextRoot) { - //If no context root is available, default to the root - // object - $scope.rootObject = undefined; + } else if (!contextRoot && !$scope.rootObject) { // Update the displayed tree on a timeout to avoid // an infinite digest exception. objectService.getObjects(['ROOT']) diff --git a/platform/commonUI/edit/test/creation/LocatorControllerSpec.js b/platform/commonUI/edit/test/creation/LocatorControllerSpec.js index ce18b2d1b8c..6837ed2a38c 100644 --- a/platform/commonUI/edit/test/creation/LocatorControllerSpec.js +++ b/platform/commonUI/edit/test/creation/LocatorControllerSpec.js @@ -138,23 +138,34 @@ define( }); }); describe("when no context is available", function () { - var defaultRoot = "DEFAULT_ROOT"; + var defaultRoot = "DEFAULT_ROOT"; - beforeEach(function () { - mockContext.getRoot.andReturn(undefined); - getObjectsPromise.then.andCallFake(function (callback) { - callback({'ROOT': defaultRoot}); - }); - controller = new LocatorController(mockScope, mockTimeout, mockObjectService); + beforeEach(function () { + mockContext.getRoot.andReturn(undefined); + getObjectsPromise.then.andCallFake(function (callback) { + callback({'ROOT': defaultRoot}); }); + controller = new LocatorController(mockScope, mockTimeout, mockObjectService); + }); - it("provides a default context where none is available", function () { - mockScope.$watch.mostRecentCall.args[1](mockDomainObject); - mockTimeout.mostRecentCall.args[0](); - expect(mockScope.rootObject).toBe(defaultRoot); + it("provides a default context where none is available", function () { + mockScope.$watch.mostRecentCall.args[1](mockDomainObject); + mockTimeout.mostRecentCall.args[0](); + expect(mockScope.rootObject).toBe(defaultRoot); + }); - }); + it("does not issue redundant requests for the root object", function () { + mockScope.$watch.mostRecentCall.args[1](mockDomainObject); + mockTimeout.mostRecentCall.args[0](); + mockScope.$watch.mostRecentCall.args[1](undefined); + mockTimeout.mostRecentCall.args[0](); + mockScope.$watch.mostRecentCall.args[1](mockDomainObject); + mockTimeout.mostRecentCall.args[0](); + expect(mockObjectService.getObjects.calls.length) + .toEqual(1); }); + + }); }); } ); diff --git a/platform/commonUI/general/res/sass/_fixed-position.scss b/platform/commonUI/general/res/sass/_fixed-position.scss index 66c9baf7a69..03364c19835 100644 --- a/platform/commonUI/general/res/sass/_fixed-position.scss +++ b/platform/commonUI/general/res/sass/_fixed-position.scss @@ -21,7 +21,6 @@ *****************************************************************************/ .t-fixed-position { &.l-fixed-position { - // @include test(red); position: absolute; top: 0; right: 0; @@ -35,7 +34,6 @@ height: 100%; width: 100%; .l-grid { - // @include test(orange); position: absolute; height: 100%; width: 100%; @@ -49,11 +47,6 @@ position: absolute; border: 1px solid transparent; - &.s-selected { - @include boxShdwLarge(); - border-color: $colorKey; - cursor: move; - } &.s-not-selected { opacity: 0.8; } @@ -76,26 +69,19 @@ } .l-fixed-position-text { - //@include txtShdwSubtle(); border: 1px solid transparent; font-size: 0.8rem; - $p: 1px; //$interiorMarginSm; + $p: 1px; line-height: 100%; &.l-static-text { - // overflow: auto; padding: $p; } &.l-telemetry { .l-elem { - //@include absPosDefault($p); - //@include absPosDefault(0); box-sizing: border-box; display: block; padding: 2px; - //width: 50%; &.l-title { - //right: auto; - //left: $p; float: none; overflow: hidden; text-overflow: ellipsis; @@ -103,9 +89,6 @@ width: auto; } &.l-value { - // @include test(blue); - // right: $p; - // left: auto; border-radius: $smallCr; $valPad: 5px; float: right; @@ -125,7 +108,6 @@ .l-fixed-position-item-handle { $brd: 1px solid $colorKey; - // border-radius: $controlCr; background: rgba($colorKey, 0.5); cursor: crosshair; border: $brd; diff --git a/platform/commonUI/general/res/sass/_inspector.scss b/platform/commonUI/general/res/sass/_inspector.scss index bb325dbe179..7d30c978afe 100644 --- a/platform/commonUI/general/res/sass/_inspector.scss +++ b/platform/commonUI/general/res/sass/_inspector.scss @@ -71,7 +71,7 @@ .form { margin-bottom: $interiorMarginSm; padding-bottom: $interiorMarginLg; - .form-section { + .l-section-body { margin-bottom: 0; &:not(.first) { border-top: 1px solid $colorFormLines; diff --git a/platform/commonUI/general/res/sass/_main.scss b/platform/commonUI/general/res/sass/_main.scss index 0c702b2807b..3ecb2304ab8 100644 --- a/platform/commonUI/general/res/sass/_main.scss +++ b/platform/commonUI/general/res/sass/_main.scss @@ -65,6 +65,7 @@ @import "user-environ/frame"; @import "user-environ/top-bar"; @import "user-environ/tool-bar"; +@import "user-environ/selecting"; /********************************* VIEWS */ @import "fixed-position"; diff --git a/platform/commonUI/general/res/sass/edit/_editor.scss b/platform/commonUI/general/res/sass/edit/_editor.scss index 565e9e06660..20132161b60 100644 --- a/platform/commonUI/general/res/sass/edit/_editor.scss +++ b/platform/commonUI/general/res/sass/edit/_editor.scss @@ -97,7 +97,7 @@ .frame.child-frame.panel { &:hover { @include boxShdwLarge(); - border-color: $colorKey; + border-color: $colorSelectableSelectedPrimary; .view-switcher { opacity: 1; } diff --git a/platform/commonUI/general/res/sass/forms/_elems.scss b/platform/commonUI/general/res/sass/forms/_elems.scss index d8de2fc4359..186dd2f84fc 100644 --- a/platform/commonUI/general/res/sass/forms/_elems.scss +++ b/platform/commonUI/general/res/sass/forms/_elems.scss @@ -25,11 +25,21 @@ .form { color: $colorFormText; + height: 100%; width: 100%; - .form-section { - position: relative; - margin-bottom: $interiorMarginLg * 2; - } + + .l-form-section { + position: relative; + &.grows { + .l-section-body, + .form-row { + @include flex(1 1 auto); + .wrapper { + height: 100%; + } + } + } + } .section-header { border-radius: $basicCr; @@ -43,10 +53,14 @@ .form-row { $m: $interiorMargin; box-sizing: border-box; - @include clearfix; border-top: 1px solid $colorFormLines; + margin-bottom: $interiorMarginLg * 2; padding: $formTBPad 0; position: relative; + //&ng-form { + // display: block; + //} + &.first { border-top: none; } @@ -92,17 +106,14 @@ .selector-list { // Used in create overlay to display tree view @include nice-input(); - $h: 150px; + padding: $interiorMargin; position: relative; - height: $h; + min-height: 150px; + height: 100%; >.wrapper { $p: $interiorMargin; + box-sizing: border-box; overflow: auto; - position: absolute; - top: $p; - right: $p; - bottom: $p; - left: $p; } } } diff --git a/platform/commonUI/general/res/sass/helpers/_bubbles.scss b/platform/commonUI/general/res/sass/helpers/_bubbles.scss index e4cc8a27976..16bc08f0b43 100644 --- a/platform/commonUI/general/res/sass/helpers/_bubbles.scss +++ b/platform/commonUI/general/res/sass/helpers/_bubbles.scss @@ -21,9 +21,6 @@ *****************************************************************************/ //************************************************* GENERAL -.bubble-container { - pointer-events: none; -} //************************************************* LAYOUT diff --git a/platform/commonUI/general/res/sass/mobile/overlay/_overlay.scss b/platform/commonUI/general/res/sass/mobile/overlay/_overlay.scss index a5459aa1d91..1feb4f1c9af 100644 --- a/platform/commonUI/general/res/sass/mobile/overlay/_overlay.scss +++ b/platform/commonUI/general/res/sass/mobile/overlay/_overlay.scss @@ -25,7 +25,6 @@ @include phone { .overlay > .holder { - //@include test(orange); // This works! $m: 0; border-radius: $m; top: $m; @@ -38,36 +37,30 @@ overflow: auto; @include transform(none); - .editor .form .form-row { - > .label, - > .controls { - //@include test(blue); - display: block; - float: none; - width: 100%; - } - > .label { - &:after { - float: none; + .editor .form .form-row.l-flex-row { + // Display elements in a columnar view + @include flex-direction(column); + > .flex-elem { + &:not(:first-child) { + margin-top: $interiorMargin; + } + &.label { + width: 100%; + } + &.controls { + overflow: auto; } } - } - - .contents { - .abs.top-bar, - .abs.editor, - .abs.message-body, - .abs.bottom-bar { - //@include test(orange); - top: auto; right: auto; bottom: auto; left: auto; - height: auto; width: auto; - margin-bottom: $interiorMarginLg * 2; + + &.validates > .label:before { position: relative; + right: auto; + line-height: inherit; + margin-right: $interiorMargin; } } } .t-dialog-sm .overlay > .holder { - //@include test(blue); height: auto; max-height: 100%; } } diff --git a/platform/commonUI/general/res/sass/search/_search.scss b/platform/commonUI/general/res/sass/search/_search.scss index 964a36a708e..51c451147f6 100644 --- a/platform/commonUI/general/res/sass/search/_search.scss +++ b/platform/commonUI/general/res/sass/search/_search.scss @@ -126,16 +126,15 @@ $p: $interiorMargin; box-sizing: border-box; line-height: 130%; - //padding-left: $s * 2.25; + padding-left: $s * 2; font-size: $s; .clear-filters { - color: $colorInputIcon; opacity: 1; font-size: 0.9em; margin-right: $interiorMarginSm; - //position: absolute; - //left: 1px; + position: absolute; + left: 1px; cursor: pointer; } } diff --git a/protractor/common/Launch.js b/platform/commonUI/general/res/sass/user-environ/_selecting.scss similarity index 72% rename from protractor/common/Launch.js rename to platform/commonUI/general/res/sass/user-environ/_selecting.scss index 75d3631cc40..e20a19872f9 100644 --- a/protractor/common/Launch.js +++ b/platform/commonUI/general/res/sass/user-environ/_selecting.scss @@ -19,11 +19,21 @@ * this source code distribution or the Licensing information page available * at runtime from the About dialog for additional information. *****************************************************************************/ -/*global module,browser*/ +.s-selectable { + border: 1px solid transparent; -module.exports = function launch() { - 'use strict'; - browser.ignoreSynchronization = true; - browser.get('http://localhost:1984'); - browser.sleep(2000); // 2 seconds -}; + &.s-hover { + // Styles when hovering over a selectable object + border-color: $colorSelectableHov !important; + } + + &.s-selected { + // Styles for a selected object. Also used by legacy Fixed Position/Panel objects. + border-color: $colorSelectableSelectedPrimary !important; + } + + &.s-moveable { + @include boxShdwLarge(); + cursor: move; + } +} \ No newline at end of file diff --git a/platform/commonUI/general/src/directives/MCTTree.js b/platform/commonUI/general/src/directives/MCTTree.js index 987b733ba6b..3b086911259 100644 --- a/platform/commonUI/general/src/directives/MCTTree.js +++ b/platform/commonUI/general/src/directives/MCTTree.js @@ -28,8 +28,10 @@ define([ function link(scope, element) { var treeView = new TreeView(gestureService), unobserve = treeView.observe(function (domainObject) { - scope.mctModel = domainObject; - scope.$apply(); + if (scope.mctModel !== domainObject) { + scope.mctModel = domainObject; + scope.$apply(); + } }); element.append(angular.element(treeView.elements())); diff --git a/platform/commonUI/general/test/directives/MCTTreeSpec.js b/platform/commonUI/general/test/directives/MCTTreeSpec.js index 0cc64949c2d..bd8e17117a4 100644 --- a/platform/commonUI/general/test/directives/MCTTreeSpec.js +++ b/platform/commonUI/general/test/directives/MCTTreeSpec.js @@ -29,6 +29,18 @@ define([ mockExpr, mctTree; + function makeMockDomainObject(id) { + var mockDomainObject = jasmine.createSpyObj('domainObject-' + id, [ + 'getId', + 'getModel', + 'getCapability', + 'hasCapability' + ]); + mockDomainObject.getId.andReturn(id); + mockDomainObject.getModel.andReturn({}); + return mockDomainObject; + } + beforeEach(function () { mockGestureService = jasmine.createSpyObj( 'gestureService', @@ -56,7 +68,8 @@ define([ testAttrs; beforeEach(function () { - mockScope = jasmine.createSpyObj('$scope', ['$watch', '$on']); + mockScope = + jasmine.createSpyObj('$scope', ['$watch', '$on', '$apply']); mockElement = jasmine.createSpyObj('element', ['append']); testAttrs = { mctModel: "some-expression" }; mockScope.$parent = @@ -88,6 +101,27 @@ define([ jasmine.any(Function) ); }); + + // https://github.com/nasa/openmct/issues/1114 + it("does not trigger $apply during $watches", function () { + mockScope.mctObject = makeMockDomainObject('root'); + mockScope.mctMode = makeMockDomainObject('selection'); + mockScope.$watch.calls.forEach(function (call) { + call.args[1](mockScope[call.args[0]]); + }); + expect(mockScope.$apply).not.toHaveBeenCalled(); + }); + it("does trigger $apply from other value changes", function () { + // White-boxy; we know this is the setter for the tree's value + var treeValueFn = mockScope.$watch.calls[0].args[1]; + + mockScope.mctObject = makeMockDomainObject('root'); + mockScope.mctMode = makeMockDomainObject('selection'); + + treeValueFn(makeMockDomainObject('other')); + + expect(mockScope.$apply).toHaveBeenCalled(); + }); }); }); diff --git a/platform/commonUI/inspect/src/InfoConstants.js b/platform/commonUI/inspect/src/InfoConstants.js index 3eb6df921d2..959f475a944 100644 --- a/platform/commonUI/inspect/src/InfoConstants.js +++ b/platform/commonUI/inspect/src/InfoConstants.js @@ -29,8 +29,7 @@ define({ BUBBLE_TEMPLATE: "" + + "bubble-layout=\"{{bubbleLayout}}\">" + "" + "" + diff --git a/platform/commonUI/themes/espresso/res/sass/_constants.scss b/platform/commonUI/themes/espresso/res/sass/_constants.scss index bb82e44fd64..12c8d45ebfc 100644 --- a/platform/commonUI/themes/espresso/res/sass/_constants.scss +++ b/platform/commonUI/themes/espresso/res/sass/_constants.scss @@ -61,8 +61,11 @@ $colorCreateBtn: $colorKey; $colorGridLines: rgba(#fff, 0.05); $colorInvokeMenu: #fff; $colorObjHdrTxt: $colorBodyFg; -$colorObjHdrIc: darken($colorObjHdrTxt, 20%); -$colorTick: pullForward($colorBodyBg, 20%); +$colorObjHdrIc: pullForward($colorObjHdrTxt, 20%); +$colorTick: rgba(white, 0.2); +$colorSelectableSelectedPrimary: $colorKey; +$colorSelectableSelectedSecondary: pushBack($colorSelectableSelectedPrimary, 20%); +$colorSelectableHov: $colorSelectableSelectedSecondary; // Menu colors $colorMenuBg: pullForward($colorBodyBg, 23%); @@ -113,7 +116,6 @@ $colorProgressBarAmt: $colorKey; $progressBarHOverlay: 15px; $progressBarStripeW: 20px; $shdwStatusIc: rgba(black, 0.4) 0 1px 2px; -$animPausedPulseDur: 500ms; // Selects $colorSelectBg: $colorBtnBg; @@ -230,4 +232,4 @@ $colorAboutLink: #84b3ff; // Loading $colorLoadingFg: $colorAlt1; -$colorLoadingBg: rgba($colorBodyFg, 0.2); +$colorLoadingBg: rgba($colorBodyFg, 0.2); \ No newline at end of file diff --git a/platform/commonUI/themes/snow/res/sass/_constants.scss b/platform/commonUI/themes/snow/res/sass/_constants.scss index eee26e265b1..f119559ba61 100644 --- a/platform/commonUI/themes/snow/res/sass/_constants.scss +++ b/platform/commonUI/themes/snow/res/sass/_constants.scss @@ -61,8 +61,11 @@ $colorCreateBtn: $colorKey; $colorGridLines: rgba(#000, 0.05); $colorInvokeMenu: #fff; $colorObjHdrTxt: $colorBodyFg; -$colorObjHdrIc: lighten($colorObjHdrTxt, 20%); -$colorTick: lighten($colorBodyFg, 10%); +$colorObjHdrIc: pushBack($colorObjHdrTxt, 30%); +$colorTick: rgba(black, 0.2); +$colorSelectableSelectedPrimary: $colorKey; +$colorSelectableSelectedSecondary: pushBack($colorSelectableSelectedPrimary, 20%); +$colorSelectableHov: $colorSelectableSelectedSecondary; // Menu colors $colorMenuBg: pushBack($colorBodyBg, 10%); @@ -113,7 +116,6 @@ $colorProgressBarAmt: #0a0; $progressBarHOverlay: 15px; $progressBarStripeW: 20px; $shdwStatusIc: rgba(white, 0.8) 0 0px 5px; -$animPausedPulseDur: 1s; // Selects $colorSelectBg: $colorBtnBg; diff --git a/platform/entanglement/src/actions/AbstractComposeAction.js b/platform/entanglement/src/actions/AbstractComposeAction.js index 3b43d568d92..943c2adb0a1 100644 --- a/platform/entanglement/src/actions/AbstractComposeAction.js +++ b/platform/entanglement/src/actions/AbstractComposeAction.js @@ -95,7 +95,7 @@ define( this.locationService = locationService; this.composeService = composeService; this.verb = verb || "Compose"; - this.suffix = suffix || "to a new location"; + this.suffix = suffix || "To a New Location"; } AbstractComposeAction.prototype.cloneContext = function () { diff --git a/platform/entanglement/src/actions/CopyAction.js b/platform/entanglement/src/actions/CopyAction.js index 805b5f48ba1..6388c25b749 100644 --- a/platform/entanglement/src/actions/CopyAction.js +++ b/platform/entanglement/src/actions/CopyAction.js @@ -54,7 +54,7 @@ define( copyService, context, "Duplicate", - "to a location" + "To a Location" ); } diff --git a/platform/entanglement/src/services/LocationService.js b/platform/entanglement/src/services/LocationService.js index 4ecf5d982ba..7cb92265f52 100644 --- a/platform/entanglement/src/services/LocationService.js +++ b/platform/entanglement/src/services/LocationService.js @@ -58,6 +58,7 @@ define( sections: [ { name: 'Location', + cssclass: "grows", rows: [ { name: label, diff --git a/platform/entanglement/test/actions/AbstractComposeActionSpec.js b/platform/entanglement/test/actions/AbstractComposeActionSpec.js index cc7e59bc095..80fde42748b 100644 --- a/platform/entanglement/test/actions/AbstractComposeActionSpec.js +++ b/platform/entanglement/test/actions/AbstractComposeActionSpec.js @@ -150,7 +150,7 @@ define( it("prompts for location", function () { expect(locationService.getLocationFromUser) .toHaveBeenCalledWith( - "Compose selectedObject to a new location", + "Compose selectedObject To a New Location", "Compose To", jasmine.any(Function), currentParent diff --git a/platform/entanglement/test/actions/CopyActionSpec.js b/platform/entanglement/test/actions/CopyActionSpec.js index a6262684408..380d5ebd18e 100644 --- a/platform/entanglement/test/actions/CopyActionSpec.js +++ b/platform/entanglement/test/actions/CopyActionSpec.js @@ -173,7 +173,7 @@ define( it("prompts for location", function () { expect(locationService.getLocationFromUser) .toHaveBeenCalledWith( - "Duplicate selectedObject to a location", + "Duplicate selectedObject To a Location", "Duplicate To", jasmine.any(Function), currentParent diff --git a/platform/entanglement/test/actions/LinkActionSpec.js b/platform/entanglement/test/actions/LinkActionSpec.js index c04e14f2a49..f7930bf0dd9 100644 --- a/platform/entanglement/test/actions/LinkActionSpec.js +++ b/platform/entanglement/test/actions/LinkActionSpec.js @@ -126,7 +126,7 @@ define( it("prompts for location", function () { expect(locationService.getLocationFromUser) .toHaveBeenCalledWith( - "Link selectedObject to a new location", + "Link selectedObject To a New Location", "Link To", jasmine.any(Function), currentParent diff --git a/platform/entanglement/test/actions/MoveActionSpec.js b/platform/entanglement/test/actions/MoveActionSpec.js index 7226ecb2ece..bc5398d5991 100644 --- a/platform/entanglement/test/actions/MoveActionSpec.js +++ b/platform/entanglement/test/actions/MoveActionSpec.js @@ -126,7 +126,7 @@ define( it("prompts for location", function () { expect(locationService.getLocationFromUser) .toHaveBeenCalledWith( - "Move selectedObject to a new location", + "Move selectedObject To a New Location", "Move To", jasmine.any(Function), currentParent diff --git a/platform/features/fixed/bundle.js b/platform/features/fixed/bundle.js index 890df811a36..e2e40ff5115 100644 --- a/platform/features/fixed/bundle.js +++ b/platform/features/fixed/bundle.js @@ -139,6 +139,7 @@ define([ "dialog": { "control": "textfield", "name": "Image URL", + "cssclass": "l-input-lg", "required": true } }, @@ -213,12 +214,12 @@ define([ { "name": "Horizontal grid (px)", "control": "textfield", - "cssclass": "l-small l-numeric" + "cssclass": "l-input-sm l-numeric" }, { "name": "Vertical grid (px)", "control": "textfield", - "cssclass": "l-small l-numeric" + "cssclass": "l-input-sm l-numeric" } ], "pattern": "^(\\d*[1-9]\\d*)?$", diff --git a/platform/features/layout/bundle.js b/platform/features/layout/bundle.js index 7e976f3da12..134b0f68a42 100644 --- a/platform/features/layout/bundle.js +++ b/platform/features/layout/bundle.js @@ -169,6 +169,7 @@ define([ "dialog": { "control": "textfield", "name": "Image URL", + "cssclass": "l-input-lg", "required": true } }, @@ -329,12 +330,12 @@ define([ { "name": "Horizontal grid (px)", "control": "textfield", - "cssclass": "l-small l-numeric" + "cssclass": "l-input-sm l-numeric" }, { "name": "Vertical grid (px)", "control": "textfield", - "cssclass": "l-small l-numeric" + "cssclass": "l-input-sm l-numeric" } ], "pattern": "^(\\d*[1-9]\\d*)?$", diff --git a/platform/features/layout/res/templates/fixed.html b/platform/features/layout/res/templates/fixed.html index 76fc991102e..4db5addf43c 100644 --- a/platform/features/layout/res/templates/fixed.html +++ b/platform/features/layout/res/templates/fixed.html @@ -44,7 +44,7 @@ -
- - - - - - - diff --git a/platform/features/layout/src/elements/ElementFactory.js b/platform/features/layout/src/elements/ElementFactory.js index 2e686de192a..121f94176e3 100644 --- a/platform/features/layout/src/elements/ElementFactory.js +++ b/platform/features/layout/src/elements/ElementFactory.js @@ -55,6 +55,7 @@ define( key: "url", control: "textfield", name: "Image URL", + "cssclass": "l-input-lg", required: true } ] diff --git a/platform/forms/res/templates/form.html b/platform/forms/res/templates/form.html index 4326aead68e..376dc152d7d 100644 --- a/platform/forms/res/templates/form.html +++ b/platform/forms/res/templates/form.html @@ -19,39 +19,39 @@ this source code distribution or the Licensing information page available at runtime from the About dialog for additional information. --> -
- -
+ + +
{{section.name}}
-
- -
-
- {{row.name}} -
-
-
- - -
-
+ +
+ {{row.name}} +
+
+
+ +
- -
+
+
\ No newline at end of file diff --git a/platform/search/res/templates/search.html b/platform/search/res/templates/search.html index d59ee5ce88b..f589a1f4d57 100644 --- a/platform/search/res/templates/search.html +++ b/platform/search/res/templates/search.html @@ -19,45 +19,62 @@ this source code distribution or the Licensing information page available at runtime from the About dialog for additional information. --> - \ No newline at end of file diff --git a/platform/search/src/controllers/SearchMenuController.js b/platform/search/src/controllers/SearchMenuController.js index ae533387955..f6018b732c8 100644 --- a/platform/search/src/controllers/SearchMenuController.js +++ b/platform/search/src/controllers/SearchMenuController.js @@ -80,7 +80,7 @@ define(function () { // If there's still nothing in the filters string, there are no // filters selected if ($scope.ngModel.filtersString === '') { - $scope.ngModel.filtersString = 'NONE'; + $scope.ngModel.checkAll = true; } } @@ -95,12 +95,11 @@ define(function () { $scope.ngModel.checked[type] = false; }); - // Change the filters string depending on checkAll status - if ($scope.ngModel.checkAll) { - // This setting will make the filters display hidden - $scope.ngModel.filtersString = ''; - } else { - $scope.ngModel.filtersString = 'NONE'; + // This setting will make the filters display hidden + $scope.ngModel.filtersString = ''; + // Do not let checkAll become unchecked when it is the only checked filter + if (!$scope.ngModel.checkAll) { + $scope.ngModel.checkAll = true; } // Re-filter results diff --git a/platform/search/test/controllers/SearchMenuControllerSpec.js b/platform/search/test/controllers/SearchMenuControllerSpec.js index dcee87fd478..611f0d5a087 100644 --- a/platform/search/test/controllers/SearchMenuControllerSpec.js +++ b/platform/search/test/controllers/SearchMenuControllerSpec.js @@ -76,14 +76,16 @@ define( expect(mockScope.ngModel.filtersString).not.toEqual(''); }); - it("changing checkAll status updates the filter string", function () { + it("changing checkAll status sets checkAll to true", function () { controller.checkAll(); + expect(mockScope.ngModel.checkAll).toEqual(true); expect(mockScope.ngModel.filtersString).toEqual(''); mockScope.ngModel.checkAll = false; controller.checkAll(); - expect(mockScope.ngModel.filtersString).toEqual('NONE'); + expect(mockScope.ngModel.checkAll).toEqual(true); + expect(mockScope.ngModel.filtersString).toEqual(''); }); it("checking checkAll option resets other options", function () { @@ -97,7 +99,7 @@ define( }); }); - it("tells the user when no options are checked", function () { + it("checks checkAll when no options are checked", function () { Object.keys(mockScope.ngModel.checked).forEach(function (type) { mockScope.ngModel.checked[type] = false; }); @@ -105,7 +107,8 @@ define( controller.updateOptions(); - expect(mockScope.ngModel.filtersString).toEqual('NONE'); + expect(mockScope.ngModel.filtersString).toEqual(''); + expect(mockScope.ngModel.checkAll).toEqual(true); }); it("tells the user when options are checked", function () { @@ -116,7 +119,6 @@ define( controller.updateOptions(); - expect(mockScope.ngModel.filtersString).not.toEqual('NONE'); expect(mockScope.ngModel.filtersString).not.toEqual(''); }); }); diff --git a/protractor/README b/protractor/README deleted file mode 100644 index 5734e5702d7..00000000000 --- a/protractor/README +++ /dev/null @@ -1,69 +0,0 @@ -E2e Protractor Tests. - -1. Instructions: - - 1. 3 Control Scripts located in bin/. - run.js : node script used to start tests - start.js: node script used to setup test(starts node,localstorage and webdriver) - stop.js : node script, kills the 3 process started in start.js. - clean.js: node script used to remove the node_module directory.(clean up directory). - - 2. Use npm(Node Package Mangager) to Run Scripts. - a. cd protractor; - b. npm install; - c. To Run: - -npm start : will start processes need by protractor - -npm stop : will stop the processes need by protractor - -npm run-script run : will execute Protractor Script - -npm run-script all : will execute "start", "run", and "stop" script - -2. Directory Hierachy: - - -protractor: base directory - -common: contains prototype javascript functions that all other tests use. - -Buttons: common prototype functions related to enter fullscreen - -CreateItem: common prototype functions related to creating an item - -drag: common functions to test drag and drop. - -editItem: common functions used to test edit functionality. - -Launch: common script used to navigate the specified website. - -RightMenu: common functions for right click menu(remove). - -create - -e2e tests that creates the specified object. - -delete - -e2e tests that removes the specified object - -logs - -ctrl.sh redirects console output of MMAP, webdriver and elastic search and pipes them to log files. - -UI - -Contains tests that test the UI(drag drop, fullscreen, info bubble) - -conf.js: - -protractor config file. Explained below - -stressTest: - Tests that are used to test for memory leaks. You can use the new tab option on WARP and then open the - timeline in the new tab during the browser.sleep(). Once the test is do the browser will pause and you - can look a the timeline results in the new tab. - - NOTE: Cannot open chrome dev tools on same tab as the test are run on. Protractor uses the dev tools to - exectute the tests. - - -StressTest will create and delete folders. - -StressTestBubble.js: creates manny bubbles. - (Delay variable in InfoGesture.js was changed to 0) -3. Conf.js - Conf.js is used by protractor to setup and execute the tests. - -allScriptsTimeout: gives more time for protractor to synchronize with the page. - -jasmineNodeOpts: Protractor uses jasmine for the tests and jasmine has a default time out 30 seconds - per "it" test. Changed to maximume allowed time 360000 ms - -seleniumAddress: Protractor uses a Selenium server as a "proxy" between the test scripts and the browser - driver. A stand a lone version comes with protractor and to run use "webdriver-manager" - default address is: http://localhost:4444/wd/hub. - -specs[]: Is an array of files. Each File should have a "describe, it" test to be executed by protractor. - -capabilities: Tells protractor what browser to use and any browser arguments. - -4. bundle.json - bundle.json is used by npm to determine dependencies and location of script files. - -Dependencies: - "protractor": Contains protractor and webdriver package. - "psnode": Window/Unix Command, used for list/kill process.(ps aux) - "shelljs": Window/Unix Common JS Commands. eg rm,ls,exec - "sleep": Window/Unix Commands used to sleep the script - "string": Window/Unix Commands for string manipulation. \ No newline at end of file diff --git a/protractor/UI/DragDrop.js b/protractor/UI/DragDrop.js deleted file mode 100644 index b19c89dbcef..00000000000 --- a/protractor/UI/DragDrop.js +++ /dev/null @@ -1,135 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var fullScreenFile = require("../common/Buttons"); -var createItem = require("../common/CreateItem") -var itemEdit = require("../common/EditItem"); -var rightMenu = require("../common/RightMenu"); -var Drag = require("../common/drag"); - -describe('Test Drag and Drop', function() { - var fullScreenClass = new fullScreenFile(); - var createClass = new createItem(); - var editItemClass = new itemEdit(); - var rightMenuClass = new rightMenu(); - var dragDrop = new Drag(); - - beforeEach(require('../common/Launch')); - - it('should create a folder', function(){ - var ITEM_NAME = "Folder"; - var ITEM_TYPE = "folder"; - var ITEM_MENU_GLYPH = 'F\nFolder'; - var ITEM_GRID_SELECT = 'P\nF\nFolder\n0 Items'; - - browser.wait(function() { - return createClass.createButton().click(); - }).then(function (){ - var folder = createClass.selectNewItem(ITEM_TYPE); - expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); - browser.sleep(1000); - folder.click() - }).then(function() { - browser.wait(function () { - return element.all(by.model('ngModel[field]')).isDisplayed(); - }) - createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); - browser.sleep(1000); - var item = editItemClass.SelectItem(ITEM_GRID_SELECT); - expect(item.count()).toBe(1); - browser.sleep(1000); - }); - }); - it('should create a timer',function (){ - var ITEM_NAME = "Timer"; - var ITEM_TYPE = "timer"; - var ITEM_MENU_GLYPH = 'õ\nTimer'; - var ITEM_GRID_SELECT = 'P\nõ\nTimer'; - - browser.wait(function() { - return createClass.createButton().click(); - }).then(function (){ - var folder = createClass.selectNewItem(ITEM_TYPE) - expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); - browser.sleep(1000); - folder.click() - }).then(function() { - browser.wait(function () { - return element.all(by.model('ngModel[field]')).isDisplayed(); - }) - createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); - browser.sleep(1500); - }).then(function (){ - var item = editItemClass.SelectItem(ITEM_GRID_SELECT); - expect(item.count()).toBe(1); - browser.sleep(1000); - }); - - }); - it('should drag timer into folder', function(){ - var ITEM_SIDE_SELECT = ">\nF\nFolder" - var name = "õ\nTimer"; - - rightMenuClass.select(ITEM_SIDE_SELECT, true).click(); - browser.sleep(2000); - var object = element.all(by.css('.ng-isolate-scope.ng-pristine.ng-valid')).filter(function (ele){ - return ele.getText().then(function(text) { - return text === name; - }); - }); - var clock = object.get(1); - var panel = element(by.css('.items-holder.grid.abs.ng-scope')); - - //drag - expect(panel.isPresent()).toBe(true) - expect(clock.isPresent()).toBe(true) - browser.executeScript(dragDrop.DragDrop,clock.getWebElement(),panel.getWebElement()) - browser.sleep(3000); - //check - var dragObject = element.all(by.repeater('childObject in composition')).filter(function (ele) { - return ele.getText().then(function(text) { - return text === "P\nõ\nTimer" - }) - })//output console.log - /*expect(dragObject.get(0).isPresent()).toBe(true); - browser.manage().logs().get('browser').then(function(browserLogs) { - browserLogs.forEach(function(log){ - console.log(log.message); - }); - });*/ - }); - it('should delete the Folder Item', function(){ - var ITEM_SIDE_SELECT = ">\nF\nFolder" - browser.wait(function() { - return element.all(by.css('.ui-symbol.view-control.ng-binding.ng-scope')).isDisplayed(); - }); - rightMenuClass.delete(ITEM_SIDE_SELECT); - browser.sleep(1000); - }); - it('should delete the Timer Item', function(){ - var ITEM_SIDE_SELECT = "õ\nTimer"; - browser.wait(function() { - return element.all(by.css('.ui-symbol.view-control.ng-binding.ng-scope')).isDisplayed(); - }); - rightMenuClass.delete(ITEM_SIDE_SELECT); - browser.sleep(1000); - }); -}); diff --git a/protractor/UI/Fullscreen.js b/protractor/UI/Fullscreen.js deleted file mode 100644 index 577cf4bef4d..00000000000 --- a/protractor/UI/Fullscreen.js +++ /dev/null @@ -1,50 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -//TODO Add filter for duplications/ -var fullScreenFile = require("../common/Buttons"); - -describe('Enable Fullscreen', function() { - var fullScreenClass = new fullScreenFile(); - - beforeEach(require('../common/Launch')); - - beforeEach(function() { - browser.wait(function(){ - return element(by.css('[title="Enter full screen mode"]')).isPresent(); - }, 7000); - browser.sleep(1000); - }); - - it('should find fullscreen button', function(){ - expect(element(by.css('[title="Enter full screen mode"]')).isDisplayed()).toBeTruthy(); - - });it('should enter fullscreen when fullscreen button is pressed', function(){ - function getFullScreen(){ - return document.webkitIsFullScreen; - } - var fullscreen = browser.executeScript(getFullScreen) - expect(fullscreen).toBeFalsy(); - fullScreenClass.fullScreen() - fullscreen = browser.executeScript(getFullScreen) - expect(fullscreen).toBeTruthy(); - }); -}); diff --git a/protractor/UI/InfoBubble.js b/protractor/UI/InfoBubble.js deleted file mode 100644 index 07a77d9b410..00000000000 --- a/protractor/UI/InfoBubble.js +++ /dev/null @@ -1,43 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var fullScreenFile = require("../common/Buttons"); -var createItem = require("../common/CreateItem") -var itemEdit = require("../common/EditItem"); -var rightMenu = require("../common/RightMenu"); -var Drag = require("../common/drag"); - -describe('Info Bubble', function() { - var fullScreenClass = new fullScreenFile(); - var createClass = new createItem(); - var editItemClass = new itemEdit(); - var rightMenuClass = new rightMenu(); - var dragDrop = new Drag(); - - beforeEach(require('../common/Launch')); - - it('should detect info bubble', function(){ - var myitem = (element.all(by.repeater('child in composition'))).get(0); - browser.actions().mouseMove(myitem).perform(); - browser.sleep(4000); - expect(element(by.css('.t-infobubble.s-infobubble.l-infobubble-wrapper')).isDisplayed()).toBe(true); - }); -}); diff --git a/protractor/UI/NewWindow.js b/protractor/UI/NewWindow.js deleted file mode 100644 index 8f166ca55bf..00000000000 --- a/protractor/UI/NewWindow.js +++ /dev/null @@ -1,90 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var fullScreenFile = require("../common/Buttons"); -var createClassFile = require("../common/CreateItem") -var itemEdit = require("../common/EditItem"); -var rightMenu = require("../common/RightMenu.js"); - -describe('New Window', function() { - var fullScreenClass = new fullScreenFile(); - var createClass = new createClassFile(); - var editItemClass = new itemEdit(); - var rightMenuClass = new rightMenu(); - - var ITEM_NAME = "Folder"; - var ITEM_TYPE = "folder"; - var ITEM_MENU_GLYPH = 'F\nFolder'; - var ITEM_GRID_SELECT = 'P\nF\nFolder\n0 Items'; - var ITEM_SIDE_SELECT = ">\nF\nFolder" - - beforeEach(require('../common/Launch')); - - it('should create an object and open it in new window', function(){ - function replaceString(string){ - //used to remove timestamp on the output so files can be compared - return string.replace(new RegExp("([0-1]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]","g"),"z"); - } - browser.wait(function() { - return createClass.createButton().click(); - }).then(function (){ - var folder = createClass.selectNewItem(ITEM_TYPE); - expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); - browser.sleep(1000); - folder.click() - }).then(function() { - browser.wait(function () { - return element.all(by.model('ngModel[field]')).isDisplayed(); - }) - createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); - browser.sleep(1000); - }).then(function (){ - //open file in new page - var before = browser.driver.getPageSource(); - before = browser.executeScript(replaceString, before) - - var item = editItemClass.SelectItem(ITEM_GRID_SELECT); - expect(item.count()).toBe(1); - browser.sleep(1000); - fullScreenClass.newWidnow().click(); - - var after = browser.driver.getPageSource(); - after = browser.executeScript(replaceString, after) - - browser.getAllWindowHandles().then(function (handles) { - browser.driver.switchTo().window(handles[1]); - browser.sleep(1000); - expect(before).toEqual(after); - browser.sleep(1000); - browser.driver.close(); - browser.driver.switchTo().window(handles[0]); - }); - }); - }); - it('should delete the object in the new window', function(){ - browser.wait(function() { - return element.all(by.css('.ui-symbol.view-control.ng-binding.ng-scope')).isDisplayed(); - }); - rightMenuClass.delete(ITEM_SIDE_SELECT); - browser.sleep(1000); - }); - -}); diff --git a/protractor/UI/RightClick.js b/protractor/UI/RightClick.js deleted file mode 100644 index 07a52f2d9b2..00000000000 --- a/protractor/UI/RightClick.js +++ /dev/null @@ -1,84 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var right_click = require("../common/RightMenu.js"); -var Create = require("../common/CreateItem") -var itemEdit = require("../common/EditItem"); - -describe('The Right Menu', function() { - var clickClass = new right_click(); - var createClass = new Create(); - var editItemClass = new itemEdit(); - var ITEM_NAME = "Folder"; - var ITEM_TYPE = "folder"; - var ITEM_MENU_GLYPH = 'F\nFolder'; - var ITEM_GRID_SELECT = 'P\nF\nFolder\n0 Items'; - - beforeEach(require('../common/Launch')); - - it('should Dissapear After Delete', function(){ - browser.wait(function() { - createClass.createButton().click(); - return true; - }).then(function (){ - var folder = createClass.selectNewItem(ITEM_TYPE); - expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); - browser.sleep(1000); - folder.click() - }).then(function() { - browser.wait(function () { - return element.all(by.model('ngModel[field]')).isDisplayed(); - }) - createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); - browser.sleep(1000); - }).then(function (){ - var item = editItemClass.SelectItem(ITEM_GRID_SELECT); - expect(item.count()).toBe(1); - browser.sleep(1000); - }).then(function () { - var MyItem = ">\nF\nMy Items" - element.all(by.repeater('child in composition')).filter(function (ele){ - return ele.getText().then(function(text) { - return text === MyItem; - }); - }).all(by.css('.ui-symbol.view-control.ng-binding.ng-scope')).click(); - var object = element.all(by.repeater('child in composition')).filter(function (ele){ - return ele.getText().then(function(text) { - return text === ">\nF\nFolder"; - }); - }); - browser.sleep(1000) - browser.actions().mouseMove(object.get(0)).perform(); - browser.actions().click(protractor.Button.RIGHT).perform(); - browser.sleep(1000) - var menu = element.all(by.css('.ng-binding')).filter(function (ele){ - return ele.getText().then(function (text) { - return text == "Z\nRemove"; - }) - }) - menu.click(); - browser.sleep(1000) - - expect(menu.isDisplayed()).toBe(false); - }) - }); - -}); diff --git a/protractor/bin/clean.js b/protractor/bin/clean.js deleted file mode 100755 index 82e776901f7..00000000000 --- a/protractor/bin/clean.js +++ /dev/null @@ -1,15 +0,0 @@ -#! /usr/bin/env node -var shell = require("shelljs/global"); - -var startdir = process.cwd(); -var command = "npm unlink"; - -console.log("Cleaning Directory") -exec(command, function(code, output) { - if(code != 0){ - console.log('Exit code:', code); - console.log('Program output:', output); - } -}); -console.log("rm -rf node_modules") -rm('-rf', __dirname + "/../node_modules") diff --git a/protractor/bin/ctrl.sh b/protractor/bin/ctrl.sh deleted file mode 100755 index faf385d2ad0..00000000000 --- a/protractor/bin/ctrl.sh +++ /dev/null @@ -1,90 +0,0 @@ -#! /bin/bash -ARGUMENT=$1; - -if [ $# != 1 ]; then - echo "Expected 1 Aurgument. Received " $# 1>&2; - exit 1 -fi -#Start webdrive and http-server -if [ $ARGUMENT == start ]; then - echo "Creating Log Directory ..." - mkdir logs; - - cd .. - node app.js -p 1984 -x platform/persistence/elastic -i example/persistence > protractor/logs/nodeApp.log 2>&1 & - sleep 3; - if grep -iq "Error" protractor/logs/nodeApp.log; then - if grep -iq "minimist" protractor/logs/nodeApp.log; then - echo " Node Failed Because Minimist is not installed" - echo " Installng Minimist ..." - npm install minimist express > protractor/logs/minimist.log 2>&1 & - wait $! - if [ $? != 0 ]; then - echo " Error: minimist" - echo " Check Log file" - echo - else - echo " Started: Minimist" - echo - node app.js -p 1984 -x platform/persistence/elastic -i example/persistence > protractor/logs/nodeApp.log 2>&1 & - if grep -iq "Error" protractor/logs/nodeApp.log; then - echo " Error: node app failed" - echo " Check Log file" - echo - else - echo " Started: node app.js" - echo - fi - fi - else - echo " Error: node app failed" - echo " Check Log file" - echo - fi - else - echo " Started: node app.js" - echo - fi - echo "Starting webdriver ..." - - cd protractor; - webdriver-manager start > logs/webdriver.log 2>&1 & - sleep 3; - if grep -iq "Exception" logs/webdriver.log; then - echo " Error: webdriver-manager" - echo " Check Log file" - echo - else - echo " Started: webdriver-manager" - fi - echo "Starting Elastic Search..." - - elasticsearch > logs/elasticSearch.log 2>&1 & - sleep 3; - if grep -iq "Exception" logs/elasticSearch.log; then - echo " Error: ElasticSearch" - echo " Check Log file" - echo - else - echo " Started: ElasticSearch" - fi -#Runs Protractor tests -elif [ $ARGUMENT == run ]; then - protractor ./conf.js -#Kill Process -elif [ $ARGUMENT == stop ]; then - echo "Removing logs" - rm -rf logs - echo "Stopping Node" - kill $(ps aux | grep "[n]ode app.js"| awk '{print $2}'); - - echo "Stopping webdriver ..." - kill $(ps aux | grep "[p]rotractor" | awk '{print $2}'); - kill $(ps aux | grep "[w]ebdriver-manager" | awk '{print $2}'); - sleep 1; - echo "Stopping Elastic..." - kill $(ps aux | grep "[e]lastic" | awk '{print $2}'); - sleep 1; -else - echo "Unkown: Command" $1; -fi diff --git a/protractor/bin/run.js b/protractor/bin/run.js deleted file mode 100755 index 316caa11d0d..00000000000 --- a/protractor/bin/run.js +++ /dev/null @@ -1,12 +0,0 @@ -#! /usr/bin/env node -var shell = require("shelljs/global"); -var sleep = require('sleep'); - -var command = __dirname + "/../node_modules/protractor/bin/protractor " +__dirname + "/../conf.js"; -console.log("Executing Protractor Test") -exec(command, function(code, output) { - if(code != 0){ - console.log('Exit code:', code); - console.log('Program output:', output); - } -}); \ No newline at end of file diff --git a/protractor/bin/start.js b/protractor/bin/start.js deleted file mode 100755 index 21aacc7efe1..00000000000 --- a/protractor/bin/start.js +++ /dev/null @@ -1,40 +0,0 @@ -#! /usr/bin/env node -var shell,sleep; -try { - shell = require("shelljs/global"); - sleep = require('sleep'); -}catch (e){ - console.log("Dependencies Error"); - console.log("Run npm install"); - throw (e); -} -///Users/jsanderf/git/elastic/wtd/protractor/bin -var startdir = process.cwd(); -var command; -mkdir(__dirname + '/../logs'); - -command = __dirname + "/../node_modules/protractor/bin/webdriver-manager update"; -console.log("Installing Webdriver"); -exec(command,{async:false}); -sleep.sleep(1); - -console.log(); -cd(__dirname + '/../../'); -console.log('Installing Dependencies'); -exec("npm install minimist express", {async:false}); -console.log('Starting Node'); -sleep.sleep(1); -exec("node app.js -p 1984 -x example/persistence -x platform/persistence/elastic -i example/localstorage > protractor/logs/nodeApp.log 2>&1 &", {async:false}); -console.log(' Started Node'); - -console.log(); -console.log('Starting Webdriver'); -sleep.sleep(1); -exec("protractor/node_modules/protractor/bin/webdriver-manager start --standalone> protractor/logs/webdriver.log 2>&1 &",{async:false}); -if(error() == null){ - console.log(" Webdriver Started"); -}else{ - console.log(" Error : ", error()); -} -sleep.sleep(1); -cd(startdir); diff --git a/protractor/bin/stop.js b/protractor/bin/stop.js deleted file mode 100755 index ac2c3b4295b..00000000000 --- a/protractor/bin/stop.js +++ /dev/null @@ -1,44 +0,0 @@ -#! /usr/bin/env node - -var shell = require("shelljs/global"); -var ps = require('psnode'); -var S = require('string'); -var sleep = require('sleep'); - -// A simple pid lookup -ps.list(function(err, results) { - - results.forEach(function( process ){ - //Killing Node - if(S(process.command).contains("node app.js")) { - console.log(); - console.log( 'Killing Node: %s', process.command); - ps.kill(process.pid, function(err, stdout) { - if (err) { - throw new Error(err); - } - console.log(stdout); - }); - }else if(S(process.command).contains("webdriver")) { - console.log(); - console.log( 'Killing WebDriver: %s', process.command); - ps.kill(process.pid, function(err, stdout) { - if (err){ - throw new Error(err); - } - console.log(stdout); - }); - }else if(S(process.command).contains("protractor")) { - console.log(); - console.log( 'Killing Chrome Drive: %s', process.command); - ps.kill(process.pid, function(err, stdout) { - if (err){ - throw new Error(err); - } - console.log(stdout); - }); - } - }); -}); - - diff --git a/protractor/common/Buttons.js b/protractor/common/Buttons.js deleted file mode 100644 index ec3d3c9c451..00000000000 --- a/protractor/common/Buttons.js +++ /dev/null @@ -1,41 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var Buttons = (function () { - function Buttons() { - } - //finds the Edit Button - Buttons.prototype.fullScreen = function () { - element(by.css('[title="Enter full screen mode"]')).click(); - - }; - Buttons.prototype.newWidnow = function () { - return element.all(by.css('[ng-click="parameters.action.perform()"]')).filter(function (arg) { - return arg.getAttribute("title").then(function (title){ - //expect(title).toEqual("Edit this object."); - return title == 'Open in a new browser tab'; - }) - }); - }; - return Buttons; - -})(); -module.exports = Buttons; diff --git a/protractor/common/CreateItem.js b/protractor/common/CreateItem.js deleted file mode 100644 index 6791b21d9e5..00000000000 --- a/protractor/common/CreateItem.js +++ /dev/null @@ -1,194 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var CreateItem = (function () { - function CreateItem() {} - //finds the Create Button - CreateItem.prototype.createButton = function () { - return element.all(by.css('[ng-click="createController.toggle()"]')); - }; - function getFolderType(arg) { - switch(arg) { - case 'folder': - return "F\nFolder" - break; - case 'display': - return "L\nDisplay Layout" - break; - case 'telemetry': - return "t\nTelemetry Panel" - break; - case 'webpage': - return "ê\nWeb Page" - break; - case 'clock': - return "C\nClock" - break; - case 'timer': - return "õ\nTimer" - case 'timeline': - return "S\nTimeline" - break; - case 'activity': - return "a\nActivity" - break; - case 'activity-mode': - return "A\nActivity Mode" - break; - case 'sinewave': - return "T\nSine Wave Generator" - break; - default: - throw new Error("Unexpect State"); - } - } - //Selects Object from Create Menu - CreateItem.prototype.selectNewItem = function (itemText) { - item = getFolderType(itemText); - browser.wait(function(){ - return element(by.css('[ng-click="createAction.perform()"]')).isPresent(); - }, 6000); - this.els =element.all(by.css('[ng-click="createAction.perform()"]')); - this.todoButton = this.els.filter(function(elem) { - return elem.getText().then(function(text) { - return text === item; - }); - }); - return this.todoButton; - }; - //Fills Out Folder Forum - CreateItem.prototype.fillFolderForum = function (folderName, type) { - this.namefields = element.all(by.css('[ng-required="ngRequired"]')).filter(function (elem) { - return elem.getAttribute('type').then(function(text) { - return text === 'text'; - }); - }); - - browser.sleep(1000); - this.namefields.clear(); - browser.sleep(1000); - - this.namefields.get(0).sendKeys(folderName); - switch(type) { - case 'folder': - // return "F\nFolder" - break; - case 'display': - this.namefields.get(1).sendKeys("1"); - browser.sleep(1000); - this.namefields.get(2).sendKeys("2"); - break; - case 'telemetry': - this.namefields.get(1).sendKeys("1"); - browser.sleep(1000); - this.namefields.get(2).sendKeys("2"); - this.dropdownElement = element.all(by.model('ngModel[field]')).filter(function(elem) { - return elem.getTagName().then(function(tag) { - return tag === 'select'; - }); - }); - this.dropdownElement.click(); - this.dropdownElement.all(by.css('option')).get(1).click(); - browser.sleep(1000); - break; - case 'webpage': - this.namefields.get(1).sendKeys("http://test.com"); - browser.sleep(1000); - break; - case 'clock': - this.dropdownElement = element.all(by.model('ngModel[field]')).filter(function(elem) { - return elem.getTagName().then(function(tag) { - return tag === 'select'; - }); - }); - this.dropdownElement.get(0).click(); - this.dropdownElement.get(0).all(by.css('option')).get(0).click(); - browser.sleep(1000); - this.dropdownElement.get(1).click(); - this.dropdownElement.get(1).all(by.css('option')).get(0).click(); - browser.sleep(1000); - - break; - case 'timer': - this.timerDate = element.all(by.model('datetime.date')); - browser.sleep(1000); - this.timerDate.clear().sendKeys("2015-07-22"); - browser.sleep(1000); - this.timerDate = element.all(by.model('datetime.hour')); - this.timerDate.get(0).sendKeys("7"); - this.timerDate = element.all(by.model('datetime.min')); - this.timerDate.get(0).sendKeys("30"); - this.timerDate = element.all(by.model('datetime.sec')); - this.timerDate.get(0).sendKeys("000"); - browser.sleep(1000); - break; - case 'timeline': - this.timerDate = element.all(by.model('datetime.days')); - this.timerDate.clear().sendKeys("10"); - browser.sleep(1000); - this.timerDate = element.all(by.model('datetime.hours')); - this.timerDate.get(0).sendKeys("7"); - this.timerDate = element.all(by.model('datetime.minutes')); - this.timerDate.get(0).sendKeys("30"); - this.timerDate = element.all(by.model('datetime.seconds')); - this.timerDate.get(0).sendKeys("3"); - browser.sleep(1000); - break; - case 'activity': - this.startDay = element.all(by.model('datetime.days')); - this.startDay.clear().sendKeys("10"); - this.startHours = element.all(by.model('datetime.hours')); - this.startHours.get(0).clear().sendKeys("7"); - this.startMinutes = element.all(by.model('datetime.minutes')); - this.startMinutes.get(0).clear().sendKeys("30"); - this.startSeconds = element.all(by.model('datetime.seconds')); - this.startSeconds.get(0).clear().sendKeys("3"); - browser.sleep(1000); - //Duration - this.startDay.get(1).clear().sendKeys("1"); - this.startHours.get(1).clear().sendKeys("1"); - this.startMinutes.get(1).clear().sendKeys("0"); - this.startSeconds.get(1).clear().sendKeys("0"); - browser.sleep(1000); - break; - case 'activity-mode': - this.namefields.get(1).sendKeys("55"); - browser.sleep(1000); - this.namefields.get(2).sendKeys("10"); - break; - case 'sinewave': - this.namefields.get(1).sendKeys("10"); - browser.sleep(1000); - break; - default: - throw new Error("Unexpect State"); - } - return element.all(by.css('[ng-click="ngModel.confirm()"]')); - - }; - //TODO USAGE FOR CLICK ON OBJECT ONCE CREATED - CreateItem.prototype.findFolder = function (){ - return element.all(by.css('[ng-click="action.perform("navigate")"]')); - }; - return CreateItem; - -})(); -module.exports = CreateItem; diff --git a/protractor/common/EditItem.js b/protractor/common/EditItem.js deleted file mode 100644 index fb45fb1daf7..00000000000 --- a/protractor/common/EditItem.js +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var EditItem = (function () { - function EditItem() { - } - //finds the Edit Button - EditItem.prototype.SelectItem = function (item_title) { - return element.all(by.css('.item.grid-item.ng-scope')).filter(function (arg){ - return arg.getText().then(function (text) { - // expect(text).toEqual("fh"); - return text == item_title; - }); - }); - }; - EditItem.prototype.EditButton = function () { - return element.all(by.css('[ng-click="parameters.action.perform()"]')).filter(function (arg) { - return arg.getAttribute("title").then(function (title){ - //expect(title).toEqual("Edit"); - return title == 'Edit'; - }) - }); - }; - EditItem.prototype.CreateActivity = function () { - element.all(by.css('[ng-controller="ClickAwayController as toggle"]')).click(); - browser.sleep(1000); - var list = element.all(by.css('[ng-repeat="option in structure.options"]')).filter(function (arg){ - return arg.getText().then(function (text){ - //expect(text).toEqual("Edit this object."); - return text == "a\nActivity"; - }); - }).click(); - }; - EditItem.prototype.saveButton = function () { - element.all(by.css('[ng-click="currentAction.perform()"]')).filter(function (args){ - return args.getText().then(function (text) { - //expect(text).toEqual("Save"); - return text == "Save"; - }); - }).click(); - }; - function getFolderType(arg) { - - } - return EditItem; - -})(); -module.exports = EditItem; diff --git a/protractor/common/RightMenu.js b/protractor/common/RightMenu.js deleted file mode 100644 index d7df8efad46..00000000000 --- a/protractor/common/RightMenu.js +++ /dev/null @@ -1,116 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ - -var RightMenu = (function () { - - function RightMenu() { - } - function carrotMyItem(){ - var MyItem = ">\nF\nMy Items" - element.all(by.repeater('child in composition')).filter(function (ele){ - return ele.getText().then(function(text) { - return text === MyItem; - }); - }).all(by.css('.ui-symbol.view-control.ng-binding.ng-scope')).click(); - } - //RightMenu Click on Object - RightMenu.prototype.delete = function (name, flag) { - if(typeof flag === 'undefined'){ - flag = true; - } - if(flag === true){ - carrotMyItem(); - } - browser.sleep(1000) - var object = element.all(by.repeater('child in composition')).filter(function (ele){ - return ele.getText().then(function(text) { - return text === name; - }); - }); - browser.sleep(1000) - browser.actions().mouseMove(object.get(0)).perform(); - browser.actions().click(protractor.Button.RIGHT).perform(); - browser.sleep(1000) - element.all(by.css('.ng-binding')).filter(function (ele){ - return ele.getText().then(function (text) { - return text == "Z\nRemove"; - }) - }).click(); - browser.sleep(1000) - element.all(by.repeater('child in composition')).filter(function (ele){ - return ele.getText().then(function(text) { - return text === name; - }); - }).then(function (folder) { - expect(folder.length).toBe(0); - }); - }; - RightMenu.prototype.reset = function (name) { - carrotMyItem(); - browser.sleep(1000) - var object = element.all(by.repeater('child in composition')).filter(function (ele){ - return ele.getText().then(function(text) { - return text === name; - }); - }).click(); - browser.sleep(1000) - browser.actions().mouseMove(object.get(0)).perform(); - browser.actions().click(protractor.Button.RIGHT).perform(); - browser.sleep(1000) - var remove = element.all(by.css('.ng-binding')).filter(function (ele){ - return ele.getText().then(function (text) { - return text == "r\nRestart at 0"; - }) - }).click(); - browser.sleep(1000) - }; - //click '<', true==yes false==no - RightMenu.prototype.select = function(name, flag){ - if(typeof flag == "undefined"){ - flag = true; - } - if(flag == true){ - carrotMyItem(); - } - browser.sleep(1000) - return element.all(by.repeater('child in composition')).filter(function (ele){ - return ele.getText().then(function(text) { - return text === name; - }); - }); - - }; - RightMenu.prototype.dragDrop = function(name){ - var object = element.all(by.repeater('child in composition')).filter(function (ele){ - return ele.getText().then(function(text) { - return text === name; - }); - }); - var folder = object.get(0); - var panel = element(by.css('.items-holder.grid.abs.ng-scope')); - - browser.actions().dragAndDrop(folder, panel).perform(); - }; - return RightMenu; - -})(); -module.exports = RightMenu; diff --git a/protractor/common/drag.js b/protractor/common/drag.js deleted file mode 100644 index b8170e3057e..00000000000 --- a/protractor/common/drag.js +++ /dev/null @@ -1,70 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -//drag function -/* -var e = document.createEvent("Event"); -e.initEvent('dragstart',true,false); -_element.dispatchEvent(e); -*/ -// qux.js -var Drag = (function () { - - function Drag() {}; - Drag.prototype.DragDrop = function(elem, zone){ - createEvent = function(type) { - var event = document.createEvent("event"); - event.initEvent(type, true, false); - event.dataTransfer = { - data: { - }, - setData: function(type, val){ - event.dataTransfer.data[type] = val; - }, - getData: function(type){ - return event.dataTransfer.data[type]; - } - }; - return event; - } - var event = createEvent('dragstart'); - event.effectAllowed = "copyMove"; - elem.dispatchEvent(event); - - var ele = createEvent('dragover'); - ele.preventDefault(); - zone.dispatchEvent(ele); - - var dropEvent = createEvent('drop', {}); - dropEvent.dataTransfer = event.dataTransfer; - dropEvent.preventDefault(); - zone.dispatchEvent(dropEvent); - - var dragEndEvent = createEvent('dragend', {}); - dragEndEvent.dataTransfer = event.dataTransfer; - elem.dispatchEvent(dragEndEvent); - }; - return Drag; -})(); -module.exports = Drag; - - - diff --git a/protractor/conf.js b/protractor/conf.js deleted file mode 100644 index ab3ed054dc3..00000000000 --- a/protractor/conf.js +++ /dev/null @@ -1,67 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -/*global exports,process*/ - -// conf.js -exports.config = { - allScriptsTimeout: 500000, - jasmineNodeOpts: {defaultTimeoutInterval: 360000}, - seleniumAddress: 'http://localhost:4444/wd/hub', - //specs: ['StressTestCarrot.js'], - specs: [ - // 'create/CreateActivity.js', - // 'delete/DeleteActivity.js', - // 'create/CreateActivityMode.js', - // 'delete/DeleteActivityMode.js', - // 'create/CreateClock.js', - // 'delete/DeleteClock.js', - 'create/CreateDisplay.js', - 'delete/DeleteDisplay.js', - 'create/CreateFolder.js', - 'delete/DeleteFolder.js', - // 'create/CreateTelemetry.js', - // 'delete/DeleteTelemetry.js', - // 'create/CreateTimeline.js', - // 'delete/DeleteTimeline.js', - // 'create/CreateTimer.js', - // 'delete/DeleteTimer.js', - 'create/CreateWebPage.js', - 'delete/DeleteWebPage.js', - 'UI/Fullscreen.js', - 'create/CreateButton.js', - //"UI/DragDrop.js", - "UI/NewWindow.js" - //'UI/InfoBubble.js', - //'UI/RightClick.js' - ], - capabilities: { - 'browserName': 'chrome', // or 'safari' - 'chromeOptions': {} - } -}; - -// Allow specifying binary location as an environment variable, -// for cases where Chrome is not installed in a usual location. -if (process.env.CHROME_BIN) { - exports.config.capabilities.chromeOptions.binary = - process.env.CHROME_BIN; -} diff --git a/protractor/create/CreateActivity.js b/protractor/create/CreateActivity.js deleted file mode 100644 index fc1880e52e7..00000000000 --- a/protractor/create/CreateActivity.js +++ /dev/null @@ -1,57 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var itemCreate = require("../common/CreateItem"); -var itemEdit = require("../common/EditItem"); - -describe('Create Activity', function() { - var createClass = new itemCreate(); - var editItemClass = new itemEdit(); - var ITEM_NAME = "Activity"; - var ITEM_TYPE = "activity"; - var ITEM_MENU_GLYPH = 'a\nActivity'; - var ITEM_GRID_SELECT = 'P\na\nActivity\n0 Items'; - beforeEach(require('../common/Launch')); - it('should Create new Activity', function(){ - //button.click() - browser.wait(function() { - createClass.createButton().click(); - return true; - }).then(function (){ - var folder = createClass.selectNewItem(ITEM_TYPE) - expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); - browser.sleep(1000); - folder.click() - }).then(function() { - browser.wait(function () { - return element.all(by.model('ngModel[field]')).isDisplayed(); - }) - var ok = createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); - browser.sleep(1000); - //ok.click(); - }).then(function (){ - var item = editItemClass.SelectItem(ITEM_GRID_SELECT); - expect(item.count()).toBe(1); - }); - - }); - -}); diff --git a/protractor/create/CreateActivityMode.js b/protractor/create/CreateActivityMode.js deleted file mode 100644 index 76b600837d6..00000000000 --- a/protractor/create/CreateActivityMode.js +++ /dev/null @@ -1,58 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var itemCreate = require("../common/CreateItem"); -var itemEdit = require("../common/EditItem"); - -describe('Create Activity Mode', function() { - var createClass = new itemCreate(); - var editItemClass = new itemEdit(); - var ITEM_NAME = "Activity Mode"; - var ITEM_TYPE = "activity-mode"; - var ITEM_MENU_GLYPH = 'A\nActivity Mode'; - var ITEM_GRID_SELECT = 'P\nA\nActivity Mode'; - beforeEach(require('../common/Launch')); - it('should Create new Activity Mode', function(){ - //button.click() - browser.wait(function() { - createClass.createButton().click(); - return true; - }).then(function (){ - var folder = createClass.selectNewItem(ITEM_TYPE) - expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); - browser.sleep(1000); - folder.click() - }).then(function() { - browser.wait(function () { - return element.all(by.model('ngModel[field]')).isDisplayed(); - }) - createClass.fillFolderForum(ITEM_NAME,ITEM_TYPE).click(); - browser.sleep(1000); - - }).then(function (){ - var item = editItemClass.SelectItem(ITEM_GRID_SELECT); - expect(item.count()).toBe(1); - browser.sleep(1000); - }); - - }); - -}); diff --git a/protractor/create/CreateButton.js b/protractor/create/CreateButton.js deleted file mode 100644 index 1c5afcdc34e..00000000000 --- a/protractor/create/CreateButton.js +++ /dev/null @@ -1,40 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -//TODO Add filter for duplications/ -describe('Create Button', function() { - beforeEach(require('../common/Launch')); - //it('should hava title "My Items"', function(){ - // expect(browser.getTitle()).toEqual('My Items'); - //}); - it('should find create menu to be invisible', function(){ - expect(element(by.css('[ng-show="createController.isActive()"]')).isDisplayed()).toBeFalsy(); - }); - it('should find create menu only visable after the create button clicked', function(){ - element(by.css('[ng-click="createController.toggle()"]')).click(); - expect(element(by.css('[ng-show="createController.isActive()"]')).isDisplayed()).toBeTruthy(); - }); - it('should find create menu only visable after the create button clicked', function(){ - element(by.css('[ng-click="createController.toggle()"]')).click(); - expect(element(by.css('[ng-show="createController.isActive()"]')).isDisplayed()).toBeTruthy(); - }); - -}); diff --git a/protractor/create/CreateClock.js b/protractor/create/CreateClock.js deleted file mode 100644 index 02dc81bb884..00000000000 --- a/protractor/create/CreateClock.js +++ /dev/null @@ -1,109 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var itemCreate = require("../common/CreateItem"); -var itemEdit = require("../common/EditItem"); -var rightClick = require("../common/RightMenu"); -describe('Create Clock', function() { - var createClass = new itemCreate(); - var editItemClass = new itemEdit(); - var rightClickClass = new rightClick(); - - var ITEM_NAME = "Clock"; - var ITEM_TYPE = "clock"; - var ITEM_MENU_GLYPH = 'C\nClock'; - var ITEM_GRID_SELECT = 'P\nC\nClock'; - beforeEach(require('../common/Launch')); - it('should Create new Clock', function(){ - //button.click() - browser.wait(function() { - createClass.createButton().click(); - return true; - }).then(function (){ - var folder = createClass.selectNewItem(ITEM_TYPE) - expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); - browser.sleep(1000); - folder.click() - }).then(function() { - browser.wait(function () { - return element.all(by.model('ngModel[field]')).isDisplayed(); - }) - createClass.fillFolderForum(ITEM_NAME,ITEM_TYPE).click(); - browser.sleep(1000); - }).then(function (){ - var item = editItemClass.SelectItem(ITEM_GRID_SELECT); - expect(item.count()).toBe(1); - browser.sleep(1000); - }); - - }); - it('should check clock', function () { - - function getTime(flag) { - function addZero(time){ - if(time < 10){ - return '0' + time; - } - return time; - } - var currentdate = new Date(); - - var month = currentdate.getMonth() + 1; - month = addZero(month); - - var day = currentdate.getDate(); - day = addZero(day); - - var hour = currentdate.getHours() - 5; - hour = addZero(hour); - - var second = currentdate.getSeconds(); - if(flag == true) { - second = second + 1; - } - second = addZero(second); - - var minute = currentdate.getMinutes(); - minute = addZero(minute); - - return ("UTC " + currentdate.getFullYear() + "/" + (month) + "/" + - day + " " + (hour) + ":" + minute + ":" + second + " PM"); - } - this.addMatchers({ - toBeIn: function(expected){ - var posibilities = Array.isArray(this.actual) ? this.actual : [this.actual]; - return posibilities.indexOf(expected) > -1; - } - }) - rightClickClass.select(ITEM_MENU_GLYPH, true).click().then(function () { - browser.sleep(1000); - browser.executeScript(getTime, false).then(function(current){ - browser.executeScript(getTime, true).then(function(current1) { - var clock = element(by.css('.l-time-display.l-digital.l-clock.s-clock.ng-scope')); - clock.getText().then(function (ele) { - expect([current,current1]).toBeIn(ele); - }) - }); - }); - - }) - }); -}); diff --git a/protractor/create/CreateDisplay.js b/protractor/create/CreateDisplay.js deleted file mode 100644 index 716e0c3ebd6..00000000000 --- a/protractor/create/CreateDisplay.js +++ /dev/null @@ -1,58 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var itemCreate = require("../common/CreateItem"); -var itemEdit = require("../common/EditItem"); - -describe('Create Display', function() { - var createClass = new itemCreate(); - var editItemClass = new itemEdit(); - var ITEM_NAME = "Display"; - var ITEM_TYPE = "display"; - var ITEM_MENU_GLYPH = 'L\nDisplay Layout'; - var ITEM_GRID_SELECT = 'P\nL\nDisplay\n0 Items'; - - beforeEach(require('../common/Launch')); - it('should Create new Display', function(){ - //button.click() - browser.wait(function() { - createClass.createButton().click(); - return true; - }).then(function (){ - var folder = createClass.selectNewItem(ITEM_TYPE) - expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); - browser.sleep(1000); - folder.click() - }).then(function() { - browser.wait(function () { - return element.all(by.model('ngModel[field]')).isDisplayed(); - }) - createClass.fillFolderForum(ITEM_NAME,ITEM_TYPE).click(); - browser.sleep(1000); - }).then(function (){ - var item = editItemClass.SelectItem(ITEM_GRID_SELECT); - expect(item.count()).toBe(1); - browser.sleep(1000); - }); - - }); - -}); diff --git a/protractor/create/CreateFolder.js b/protractor/create/CreateFolder.js deleted file mode 100644 index d1731791b90..00000000000 --- a/protractor/create/CreateFolder.js +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -//TODO Add filter for duplications/ -var itemCreate = require("../common/CreateItem"); -var itemEdit = require("../common/EditItem"); - -describe('Create Folder', function() { - var createClass = new itemCreate(); - var editItemClass = new itemEdit(); - var ITEM_NAME = "Folder"; - var ITEM_TYPE = "folder"; - var ITEM_MENU_GLYPH = 'F\nFolder'; - var ITEM_GRID_SELECT = 'P\nF\nFolder\n0 Items'; - - beforeEach(require('../common/Launch')); - it('should Create new Folder', function(){ - - browser.wait(function() { - createClass.createButton().click(); - return true; - }).then(function (){ - var folder = createClass.selectNewItem(ITEM_TYPE); - expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); - browser.sleep(1000); - folder.click() - }).then(function() { - browser.wait(function () { - return element.all(by.model('ngModel[field]')).isDisplayed(); - }) - createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); - browser.sleep(1000); - }).then(function (){ - var item = editItemClass.SelectItem(ITEM_GRID_SELECT); - expect(item.count()).toBe(1); - browser.sleep(1000); - }); - - }); - -}); diff --git a/protractor/create/CreateSineWave.js b/protractor/create/CreateSineWave.js deleted file mode 100644 index 396e3c70b5e..00000000000 --- a/protractor/create/CreateSineWave.js +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var itemCreate = require("../common/CreateItem"); - -describe('Create Sine Wave Generator', function() { - var createClass = new itemCreate(); - var ITEM_NAME = "Sine Wave G"; - var ITEM_TYPE = "sinewave"; - var ITEM_MENU_GLYPH = 'T\nSine Wave Generator' - beforeEach(require('../common/Launch')); - it('should Create new Sin Wave Generator' , function(){ - //button.click() - browser.wait(function() { - createClass.createButton().click(); - return true; - }).then(function (){ - var folder = createClass.selectNewItem(ITEM_TYPE) - expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); - browser.sleep(1000); - folder.click() - }).then(function() { - browser.wait(function () { - return element.all(by.model('ngModel[field]')).isDisplayed(); - }) - var ok = createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE); - browser.sleep(1000); - ok.click(); - }).then(function (){ - var checkfolder = element.all(by.css('.title.ng-binding')).filter(function (ele) { - return ele.getTagName('div').then(function (tag){ - return tag == 'div'; - }); - }) - expect(checkfolder.getText()).toEqual([ '', 'Sine Wave G' ]); - - }); - - }); - -}); diff --git a/protractor/create/CreateTelemetry.js b/protractor/create/CreateTelemetry.js deleted file mode 100644 index 1e12c3f2663..00000000000 --- a/protractor/create/CreateTelemetry.js +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var itemCreate = require("../common/CreateItem"); -var itemEdit = require("../common/EditItem"); - -describe('Create Telemetry', function() { - var createClass = new itemCreate(); - var editItemClass = new itemEdit(); - var ITEM_NAME = "Telemetry"; - var ITEM_TYPE = "telemetry"; - var ITEM_MENU_GLYPH = 't\nTelemetry Panel' - var ITEM_GRID_SELECT = 'P\nt\nTelemetry\n0 Items'; - - beforeEach(require('../common/Launch')); - - it('should Create new Telemetry', function(){ - //button.click() - browser.wait(function() { - createClass.createButton().click(); - return true; - }).then(function (){ - var folder = createClass.selectNewItem(ITEM_TYPE) - expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); - browser.sleep(1000); - folder.click() - }).then(function() { - browser.wait(function () { - return element.all(by.model('ngModel[field]')).isDisplayed(); - }) - createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); - browser.sleep(1000); - }).then(function (){ - var item = editItemClass.SelectItem(ITEM_GRID_SELECT); - expect(item.count()).toBe(1); - browser.sleep(1000); - }); - - }); - -}); diff --git a/protractor/create/CreateTimeline.js b/protractor/create/CreateTimeline.js deleted file mode 100644 index 2f193fde3f8..00000000000 --- a/protractor/create/CreateTimeline.js +++ /dev/null @@ -1,81 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var itemCreate = require("../common/CreateItem"); -var itemEdit = require("../common/EditItem"); - -describe('Create Timeline', function() { - var createItemClass = new itemCreate(); - var editItemClass = new itemEdit(); - var ITEM_NAME = "Timeline"; - var ITEM_TYPE = "timeline"; - var ITEM_MENU_GLYPH = 'S\nTimeline'; - var ITEM_GRID_SELECT = 'P\nS\nTimeline\n0 Items'; - beforeEach(require('../common/Launch')); - it('should Create Timeline', function(){ - //button.click() - browser.wait(function() { - createItemClass.createButton().click(); - return true; - }).then(function (){ - var folder = createItemClass.selectNewItem(ITEM_TYPE) - expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); - folder.click() - }).then(function() { - browser.wait(function () { - return element.all(by.model('ngModel[field]')).isDisplayed(); - }) - createItemClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); - browser.sleep(1000); - }).then(function (){ - var fo= element.all(by.css('.item.grid-item.ng-scope')).filter(function (arg){ - return arg.getText().then(function (text) { - expect(text).toEqual("fh"); - return text == ITEM_GRID_SELECT; - }); - }); - var item = editItemClass.SelectItem(ITEM_GRID_SELECT); - expect(item.count()).toBe(1); - - }); - }); - it('should Create Timeline Activity', function(){ - var item = editItemClass.SelectItem(ITEM_GRID_SELECT); - expect(item.count()).toBe(1); - item.click(); - browser.sleep(1000); - expect(browser.getTitle()).toEqual(ITEM_NAME); - browser.sleep(1000); - var edit = editItemClass.EditButton(); - expect(edit.count()).toBe(1); - edit.click(); - browser.sleep(1000); - editItemClass.CreateActivity(); - var ok = createItemClass.fillFolderForum("Activity", "activity"); - browser.sleep(1000); - ok.click(); - browser.sleep(1000); - editItemClass.saveButton(); - //save.click(); - browser.sleep(5000); - }); - -}); diff --git a/protractor/create/CreateTimer.js b/protractor/create/CreateTimer.js deleted file mode 100644 index 666c8209075..00000000000 --- a/protractor/create/CreateTimer.js +++ /dev/null @@ -1,74 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var itemCreate = require("../common/CreateItem"); -var itemEdit = require("../common/EditItem"); -var rightClick = require("../common/RightMenu"); - -describe('Create Timer', function() { - var createClass = new itemCreate(); - var editItemClass = new itemEdit(); - var rightMenu = new rightClick(); - - var ITEM_NAME = "Timer"; - var ITEM_TYPE = "timer"; - var ITEM_MENU_GLYPH = 'õ\nTimer'; - var ITEM_GRID_SELECT = 'P\nõ\nTimer'; - - beforeEach(require('../common/Launch')); - - it('should Create Timer', function(){ - //button.click() - browser.wait(function() { - createClass.createButton().click(); - return true; - }).then(function (){ - var folder = createClass.selectNewItem(ITEM_TYPE) - expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); - browser.sleep(1000); - folder.click() - }).then(function() { - browser.wait(function () { - return element.all(by.model('ngModel[field]')).isDisplayed(); - }) - createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); - browser.sleep(1500); - }).then(function (){ - var item = editItemClass.SelectItem(ITEM_GRID_SELECT); - expect(item.count()).toBe(1); - browser.sleep(1000); - }); - }); - it('should test Timer', function(){ - browser.sleep(2000) - rightMenu.reset(ITEM_MENU_GLYPH); - browser.sleep(1000) - var timer = element(by.css('.value.ng-binding.active')) - timer.getText().then(function (time) { - var timerChecker = false; - if(time == "0D 00:00:01" || time == "0D 00:00:02"){ - timerChecker = true; - } - expect(timerChecker).toEqual(true) - }) - }); - -}); diff --git a/protractor/create/CreateWebPage.js b/protractor/create/CreateWebPage.js deleted file mode 100644 index b7ac7dbd6ea..00000000000 --- a/protractor/create/CreateWebPage.js +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var itemCreate = require("../common/CreateItem"); -var itemEdit = require("../common/EditItem"); - -describe('Create Web Page', function() { - var createClass = new itemCreate(); - var editItemClass = new itemEdit(); - var ITEM_NAME = "Webpage"; - var ITEM_TYPE = "webpage"; - var ITEM_MENU_GLYPH = 'ê\nWeb Page'; - var ITEM_GRID_SELECT = 'P\nê\nWebpage'; - - beforeEach(require('../common/Launch')); - - it('should Create new Web Page', function(){ - //button.click() - browser.wait(function() { - createClass.createButton().click(); - return true; - }).then(function (){ - var folder = createClass.selectNewItem('webpage') - expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); - browser.sleep(1000); - folder.click() - }).then(function() { - browser.wait(function () { - return element.all(by.model('ngModel[field]')).isDisplayed(); - }) - createClass.fillFolderForum(ITEM_NAME,ITEM_TYPE).click(); - browser.sleep(1000); - }).then(function (){ - var item = editItemClass.SelectItem(ITEM_GRID_SELECT); - expect(item.count()).toBe(1); - browser.sleep(1000); - }); - - }); - -}); diff --git a/protractor/ctrl.sh b/protractor/ctrl.sh deleted file mode 100755 index 04d6ebcc45a..00000000000 --- a/protractor/ctrl.sh +++ /dev/null @@ -1,60 +0,0 @@ -#! /bin/bash -ARGUMENT=$1; -DIRECTORY=/Users/jsanderf/Applications; - -if [ $# != 1 ]; then - echo "Expected 1 Aurgument. Received " $# 1>&2; - exit 1 -fi -#Start webdrive and http-server -if [ $ARGUMENT == start ]; then - echo - echo "Starting MMAP ..." - $DIRECTORY/MAMP/ctlscript.sh start > logs/MAMP.log 2>&1 & - wait $! - if [ $? != 0 ]; then - echo " Error: MMAP" - echo " Check Log file" - echo - else - echo " Started: MMAP" - echo - fi - echo "Starting webdriver ..." - webdriver-manager start > logs/webdriver.log 2>&1 & - sleep 3; - if grep -iq "Exception" logs/webdriver.log; then - echo " Error: webdriver-manager" - echo " Check Log file" - echo - else - echo " Started: webdriver-manager" - fi - echo "Starting Elastic Search..." - elasticsearch > logs/elasticSearch.log 2>&1 & - sleep 3; - if grep -iq "Exception" logs/elasticSearch.log; then - echo " Error: ElasticSearch" - echo " Check Log file" - echo - else - echo " Started: ElasticSearch" - fi -#Runs Protractor tests -elif [ $ARGUMENT == run ]; then - protractor ./conf.js -#Kill Process -elif [ $ARGUMENT == stop ]; then - echo "Stopping MAMP" - $DIRECTORY/MAMP/ctlscript.sh stop >> logs/MAMP.log 2>&1 & - sleep 1; - echo "Stopping webdriver ..." - kill $(ps aux | grep "[p]rotractor" | awk '{print $2}'); - kill $(ps aux | grep "[w]ebdriver-manager" | awk '{print $2}'); - sleep 1; - echo "Stopping Elastic..." - kill $(ps aux | grep "[e]lastic" | awk '{print $2}'); - sleep 1; -else - echo "Unkown: Command" $1; -fi diff --git a/protractor/delete/DeleteActivity.js b/protractor/delete/DeleteActivity.js deleted file mode 100644 index a9e9d483336..00000000000 --- a/protractor/delete/DeleteActivity.js +++ /dev/null @@ -1,38 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var right_click = require("../common/RightMenu.js"); -var Create = require("../common/CreateItem") -describe('Delete Activity', function() { - var clickClass = new right_click(); - var createClass = new Create(); - var ITEM_NAME = "Activity"; - var ITEM_TYPE = "activity"; - var ITEM_MENU_GLYPH = 'a\nActivity'; - //var ITEM_GRID_SELECT = 'P\nS\nTimeline\n0 Items'; - var ITEM_SIDE_SELECT = ">\na\nActivity" - beforeEach(require('../common/Launch')); - it('should delete the Activity', function(){ - clickClass.delete(ITEM_SIDE_SELECT); - browser.sleep(1000); - }); - -}); diff --git a/protractor/delete/DeleteActivityMode.js b/protractor/delete/DeleteActivityMode.js deleted file mode 100644 index 8568b1ac513..00000000000 --- a/protractor/delete/DeleteActivityMode.js +++ /dev/null @@ -1,38 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var right_click = require("../common/RightMenu.js"); -var Create = require("../common/CreateItem") -describe('Delete Activity Mode', function() { - var clickClass = new right_click(); - var createClass = new Create(); - var ITEM_NAME = "Activity Mode"; - var ITEM_TYPE = "activity-mode"; - var ITEM_MENU_GLYPH = 'A\nActivity Mode'; - var ITEM_GRID_SELECT = 'P\nA\nActivity Mode'; - var ITEM_SIDE_SELECT = "A\nActivity Mode" - beforeEach(require('../common/Launch')); - it('should delete the Activty Mode', function(){ - clickClass.delete(ITEM_SIDE_SELECT); - browser.sleep(1000); - }); - -}); diff --git a/protractor/delete/DeleteClock.js b/protractor/delete/DeleteClock.js deleted file mode 100644 index 600619db090..00000000000 --- a/protractor/delete/DeleteClock.js +++ /dev/null @@ -1,38 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var right_click = require("../common/RightMenu.js"); -var Create = require("../common/CreateItem") -describe('Delete Clock', function() { - var clickClass = new right_click(); - var createClass = new Create(); - var ITEM_NAME = "Clock"; - var ITEM_TYPE = "clock"; - var ITEM_MENU_GLYPH = 'C\nClock'; - var ITEM_GRID_SELECT = 'P\nC\nClock'; - var ITEM_SIDE_SELECT = "C\nClock"; - beforeEach(require('../common/Launch')); - it('should delete the Clock', function(){ - clickClass.delete(ITEM_SIDE_SELECT); - browser.sleep(1000); - }); - -}); diff --git a/protractor/delete/DeleteDisplay.js b/protractor/delete/DeleteDisplay.js deleted file mode 100644 index d33a1d1c94f..00000000000 --- a/protractor/delete/DeleteDisplay.js +++ /dev/null @@ -1,38 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var right_click = require("../common/RightMenu.js"); -var Create = require("../common/CreateItem") -describe('Delete Display', function() { - var clickClass = new right_click(); - var createClass = new Create(); - var ITEM_NAME = "Display"; - var ITEM_TYPE = "display"; - var ITEM_MENU_GLYPH = 'L\nDisplay Layout'; - var ITEM_GRID_SELECT = 'P\nL\nDisplay Layout'; - var ITEM_SIDE_SELECT = ">\nL\nDisplay" - beforeEach(require('../common/Launch')); - it('should delete the Dispay', function(){ - clickClass.delete(ITEM_SIDE_SELECT); - browser.sleep(1000); - }); - -}); diff --git a/protractor/delete/DeleteFolder.js b/protractor/delete/DeleteFolder.js deleted file mode 100644 index d38c9b99109..00000000000 --- a/protractor/delete/DeleteFolder.js +++ /dev/null @@ -1,38 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var right_click = require("../common/RightMenu.js"); -var Create = require("../common/CreateItem") -describe('Delete Folder', function() { - var clickClass = new right_click(); - var createClass = new Create(); - var ITEM_NAME = "Folder"; - var ITEM_TYPE = "folder"; - var ITEM_MENU_GLYPH = 'F\nFolder'; - var ITEM_GRID_SELECT = 'P\nF\nFolder\n0 Items'; - var ITEM_SIDE_SELECT = ">\nF\nFolder" - beforeEach(require('../common/Launch')); - it('should delete the folder', function(){ - clickClass.delete(ITEM_SIDE_SELECT); - browser.sleep(1000); - }); - -}); diff --git a/protractor/delete/DeleteTelemetry.js b/protractor/delete/DeleteTelemetry.js deleted file mode 100644 index 447473fa4c7..00000000000 --- a/protractor/delete/DeleteTelemetry.js +++ /dev/null @@ -1,38 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var right_click = require("../common/RightMenu.js"); -var Create = require("../common/CreateItem") -describe('Delete Telemetry', function() { - var clickClass = new right_click(); - var createClass = new Create(); - var ITEM_NAME = "Telemetry"; - var ITEM_TYPE = "telemetry"; - var ITEM_MENU_GLYPH = 't\nTelemetry Panel' - var ITEM_GRID_SELECT = 'P\nt\nTelemetry\n0 Items'; - var ITEM_SIDE_SELECT = ">\nt\nTelemetry" - beforeEach(require('../common/Launch')); - it('should delete the Telemetry', function(){ - clickClass.delete(ITEM_SIDE_SELECT); - browser.sleep(1000); - }); - -}); diff --git a/protractor/delete/DeleteTimeline.js b/protractor/delete/DeleteTimeline.js deleted file mode 100644 index 9230700cd9a..00000000000 --- a/protractor/delete/DeleteTimeline.js +++ /dev/null @@ -1,38 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var right_click = require("../common/RightMenu.js"); -var Create = require("../common/CreateItem") -describe('Delete Timeline', function() { - var clickClass = new right_click(); - var createClass = new Create(); - var ITEM_NAME = "Timeline"; - var ITEM_TYPE = "timeline"; - var ITEM_MENU_GLYPH = 'S\nTimeline'; - var ITEM_GRID_SELECT = 'P\nS\nTimeline\n0 Items'; - var ITEM_SIDE_SELECT = ">\nS\nTimeline" - beforeEach(require('../common/Launch')); - it('should delete the specified object', function(){ - clickClass.delete(ITEM_SIDE_SELECT); - browser.sleep(1000); - }); - -}); diff --git a/protractor/delete/DeleteTimer.js b/protractor/delete/DeleteTimer.js deleted file mode 100644 index a1f19859050..00000000000 --- a/protractor/delete/DeleteTimer.js +++ /dev/null @@ -1,38 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var right_click = require("../common/RightMenu.js"); -var Create = require("../common/CreateItem") -describe('Delete Timer', function() { - var clickClass = new right_click(); - var createClass = new Create(); - var ITEM_NAME = "Timer"; - var ITEM_TYPE = "timer"; - var ITEM_MENU_GLYPH = 'õ\nTimer'; - var ITEM_GRID_SELECT = 'P\nõ\nTimer'; - var ITEM_SIDE_SELECT = "õ\nTimer" - beforeEach(require('../common/Launch')); - it('should delete the Timer', function(){ - clickClass.delete(ITEM_SIDE_SELECT); - browser.sleep(1000); - }); - -}); diff --git a/protractor/delete/DeleteWebPage.js b/protractor/delete/DeleteWebPage.js deleted file mode 100644 index dc6fd34e223..00000000000 --- a/protractor/delete/DeleteWebPage.js +++ /dev/null @@ -1,37 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var right_click = require("../common/RightMenu.js"); -var Create = require("../common/CreateItem") -describe('Delete Webpage', function() { - var clickClass = new right_click(); - var createClass = new Create(); - var ITEM_NAME = "Webpage"; - var ITEM_TYPE = "webpage"; - var ITEM_MENU_GLYPH = 'ê\nWeb Page'; - var ITEM_SIDE_SELECT = "ê\nWebpage" - beforeEach(require('../common/Launch')); - it('should delete the Webpage', function(){ - clickClass.delete(ITEM_SIDE_SELECT); - browser.sleep(1000); - }); - -}); diff --git a/protractor/package.json b/protractor/package.json deleted file mode 100644 index b43b9b1cdb4..00000000000 --- a/protractor/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "ProtractorLauncher", - "version": "1.0.0", - "scripts" : { - "start" : "bin/start.js", - "protractor" : "bin/run.js", - "stop" : "bin/stop.js", - "all" : "bin/start.js; bin/run.js; bin/stop.js;", - "clean" : "bin/clean.js" - }, - "dependencies": { - "protractor": "^2.1.0", - "psnode": "0.0.1", - "shelljs": "^0.5.2", - "sleep": "^3.0.0", - "string": "^3.3.1" - }, - "description": "E2e Protractor Tests.", - "license": "ISC" -} diff --git a/protractor/stressTest/StressTest.js b/protractor/stressTest/StressTest.js deleted file mode 100644 index f5f7bc25be4..00000000000 --- a/protractor/stressTest/StressTest.js +++ /dev/null @@ -1,78 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var itemCreate = require("../common/CreateItem"); -var itemEdit = require("../common/EditItem"); -var right_click = require("../common/RightMenu.js"); - -describe('Create Folder', function() { - var clickClass = new right_click(); - var createClass = new itemCreate(); - var editItemClass = new itemEdit(); - var ITEM_NAME = "Folder"; - var ITEM_TYPE = "folder"; - var ITEM_MENU_GLYPH = 'F\nFolder'; - var ITEM_GRID_SELECT = 'P\nF\nFolder\n0 Items'; - var ITEM_SIDE_SELECT = ">\nF\nFolder" - - beforeEach(function() { - browser.ignoreSynchronization = true; - browser.get('http://localhost:1984/warp/'); - browser.sleep(2000); // 20 seconds - }); - it('should Create new Folder', function(){ - browser.sleep(5000); - for(var i=0; i < 25; i++){ - browser.wait(function() { - createClass.createButton().click(); - return true; - }).then(function (){ - var folder = createClass.selectNewItem(ITEM_TYPE); - expect(folder.getText()).toEqual([ ITEM_MENU_GLYPH ]); - browser.sleep(500); - folder.click() - }).then(function() { - browser.wait(function () { - return element.all(by.model('ngModel[field]')).isDisplayed(); - }) - createClass.fillFolderForum(ITEM_NAME, ITEM_TYPE).click(); - browser.sleep(500); - }).then(function (){ - browser.sleep(500); - clickClass.delete(ITEM_SIDE_SELECT, true); - //element.all(by.css('.ui-symbol.view-control.ng-binding.ng-scope')).click(); - - - var MyItem = ">\nF\nMy Items" - element.all(by.repeater('child in composition')).filter(function (ele){ - return ele.getText().then(function(text) { - //expect(text).toEqual(MyItem); - return text === MyItem; - }); - }).all(by.css('.ui-symbol.view-control.ng-binding.ng-scope')).click(); - // clickClass.delete(ITEM_SIDE_SELECT, false); - }); - } - browser.pause(); - - }); - -}); diff --git a/protractor/stressTest/StressTestBubble.js b/protractor/stressTest/StressTestBubble.js deleted file mode 100644 index de77c5be7e7..00000000000 --- a/protractor/stressTest/StressTestBubble.js +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/StressTestBubble.jsStressTestBubble.js -var itemCreate = require("../common/CreateItem"); -var itemEdit = require("../common/EditItem"); -var right_click = require("../common/RightMenu.js"); - -describe('Create Folder', function() { - var clickClass = new right_click(); - var createClass = new itemCreate(); - var editItemClass = new itemEdit(); - var ITEM_NAME = "Folder"; - var ITEM_TYPE = "folder"; - var ITEM_MENU_GLYPH = 'F\nFolder'; - var ITEM_GRID_SELECT = 'P\nF\nFolder\n0 Items'; - var ITEM_SIDE_SELECT = ">\nF\nFolder" - - beforeEach(function() { - browser.ignoreSynchronization = true; - browser.get('http://localhost:1984/warp/'); - browser.sleep(2000); // 20 seconds - }); - it('should Create new Folder', function(){ - browser.sleep(10000); - for(var i=0; i < 1000; i++){ - var object = element.all(by.repeater('child in composition')).filter(function (ele){ - return ele.getText().then(function(text) { - return text === ">\nF\nMy Items"; - }); - }); - //browser.sleep(1000) - browser.actions().mouseMove(object.get(0)).perform(); - //browser.actions().click(protractor.Button.RIGHT).perform(); - - element.all(by.css('.items-holder.grid.abs.ng-scope')).click(); - } - browser.pause(); - - }); - -}); diff --git a/protractor/stressTest/StressTestCreateButton.js b/protractor/stressTest/StressTestCreateButton.js deleted file mode 100644 index 19699ba123b..00000000000 --- a/protractor/stressTest/StressTestCreateButton.js +++ /dev/null @@ -1,56 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var itemCreate = require("../common/CreateItem"); -var itemEdit = require("../common/EditItem"); -var right_click = require("../common/RightMenu.js"); - -describe('Create Folder', function() { - var clickClass = new right_click(); - var createClass = new itemCreate(); - var editItemClass = new itemEdit(); - var ITEM_NAME = "Folder"; - var ITEM_TYPE = "folder"; - var ITEM_MENU_GLYPH = 'F\nFolder'; - var ITEM_GRID_SELECT = 'P\nF\nFolder\n0 Items'; - var ITEM_SIDE_SELECT = ">\nF\nFolder" - - beforeEach(function() { - browser.ignoreSynchronization = true; - browser.get('http://localhost:1984/warp/'); - browser.sleep(2000); // 20 seconds - }); - it('should Create new Folder', function(){ - browser.sleep(10000); - for(var i=0; i < 1000; i++){ - createClass.createButton().click(); - - //browser.sleep(1000) - //browser.actions().mouseMove(object.get(0)).perform(); - //browser.actions().click(protractor.Button.RIGHT).perform(); - - element.all(by.css('.items-holder.grid.abs.ng-scope')).click(); - } - browser.pause(); - - }); - -}); diff --git a/protractor/stressTest/StressTestMenu.js b/protractor/stressTest/StressTestMenu.js deleted file mode 100644 index 4475d592c9b..00000000000 --- a/protractor/stressTest/StressTestMenu.js +++ /dev/null @@ -1,55 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var itemCreate = require("../common/CreateItem"); -var itemEdit = require("../common/EditItem"); -var right_click = require("../common/RightMenu.js"); - -describe('Create Folder', function() { - var clickClass = new right_click(); - var createClass = new itemCreate(); - var editItemClass = new itemEdit(); - var ITEM_NAME = "Folder"; - var ITEM_TYPE = "folder"; - var ITEM_MENU_GLYPH = 'F\nFolder'; - var ITEM_GRID_SELECT = 'P\nF\nFolder\n0 Items'; - var ITEM_SIDE_SELECT = ">\nF\nFolder" - - beforeEach(function() { - browser.ignoreSynchronization = true; - browser.get('http://localhost:1984/warp/'); - browser.sleep(2000); // 20 seconds - }); - it('should Create new Folder', function(){ - browser.sleep(10000); - for(var i=0; i < 1000; i++){ - browser.wait(function() { - createClass.createButton().click(); - return true; - }).then(function (){ - element.all(by.css('.items-holder.grid.abs.ng-scope')).click(); - }) - } - browser.pause(); - - }); - -}); diff --git a/protractor/stressTest/StressTestNewPage.js b/protractor/stressTest/StressTestNewPage.js deleted file mode 100644 index df8f3058184..00000000000 --- a/protractor/stressTest/StressTestNewPage.js +++ /dev/null @@ -1,61 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var itemCreate = require("../common/CreateItem"); -var itemEdit = require("../common/EditItem"); -var right_click = require("../common/RightMenu.js"); -var fullScreenFile = require("../common/FullScreen"); - -describe('Create Folder', function() { - var clickClass = new right_click(); - var createClass = new itemCreate(); - var editItemClass = new itemEdit(); - var fullScreenClass = new fullScreenFile(); - - var ITEM_NAME = "Folder"; - var ITEM_TYPE = "folder"; - var ITEM_MENU_GLYPH = 'F\nFolder'; - var ITEM_GRID_SELECT = 'P\nF\nFolder\n0 Items'; - var ITEM_SIDE_SELECT = ">\nF\nFolder" - - beforeEach(function() { - browser.ignoreSynchronization = true; - browser.get('http://localhost:1984/warp/'); - browser.sleep(2000); // 20 seconds - }); - it('should Create new Folder', function(){ - browser.sleep(15000); - for(var i=0; i < 1000; i++){ - fullScreenClass.newWidnow().click(); - - browser.getAllWindowHandles().then(function (handles) { - //browser.driver.switchTo().window(handles[1]); - browser.sleep(1000); - browser.driver.close(); - browser.sleep(1000); - // browser.driver.switchTo().window(handles[0]); - }); - } - browser.pause(); - - }); - -}); diff --git a/protractor/stressTest/StressTestRightClick.js b/protractor/stressTest/StressTestRightClick.js deleted file mode 100644 index abd51a256ba..00000000000 --- a/protractor/stressTest/StressTestRightClick.js +++ /dev/null @@ -1,59 +0,0 @@ -/***************************************************************************** - * Open MCT, Copyright (c) 2014-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. - *****************************************************************************/ -var itemCreate = require("../common/CreateItem"); -var itemEdit = require("../common/EditItem"); -var right_click = require("../common/RightMenu.js"); - -describe('Create Folder', function() { - var clickClass = new right_click(); - var createClass = new itemCreate(); - var editItemClass = new itemEdit(); - var ITEM_NAME = "Folder"; - var ITEM_TYPE = "folder"; - var ITEM_MENU_GLYPH = 'F\nFolder'; - var ITEM_GRID_SELECT = 'P\nF\nFolder\n0 Items'; - var ITEM_SIDE_SELECT = ">\nF\nFolder" - - beforeEach(function() { - browser.ignoreSynchronization = true; - browser.get('http://localhost:1984/warp/'); - browser.sleep(2000); // 20 seconds - }); - it('should Create new Folder', function(){ - browser.sleep(8000); - for(var i=0; i < 1000; i++){ - var object = element.all(by.repeater('child in composition')).filter(function (ele){ - return ele.getText().then(function(text) { - return text === ">\nF\nMy Items"; - }); - }); - //browser.sleep(1000) - browser.actions().mouseMove(object.get(0)).perform(); - browser.actions().click(protractor.Button.RIGHT).perform(); - - element.all(by.css('.items-holder.grid.abs.ng-scope')).click(); - } - browser.pause(); - - }); - -});