summaryrefslogtreecommitdiffstats
path: root/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal
diff options
context:
space:
mode:
Diffstat (limited to 'cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal')
-rw-r--r--cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/.bower.json20
-rw-r--r--cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/.gitignore4
-rw-r--r--cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/.travis.yml11
-rw-r--r--cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/LICENSE202
-rw-r--r--cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/README.md15
-rw-r--r--cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/angular-confirm.js108
-rw-r--r--cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/bower.json11
-rw-r--r--cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/gulpfile.js29
-rw-r--r--cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/package.json41
-rw-r--r--cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/test/karma.conf.js81
-rw-r--r--cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/test/unit/confirmSpec.js244
11 files changed, 766 insertions, 0 deletions
diff --git a/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/.bower.json b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/.bower.json
new file mode 100644
index 00000000..37422d3c
--- /dev/null
+++ b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/.bower.json
@@ -0,0 +1,20 @@
+{
+ "name": "angular-confirm-modal",
+ "main": "angular-confirm.min.js",
+ "version": "1.2.3",
+ "homepage": "https://github.com/Schlogen/angular-confirm",
+ "authors": [
+ "James Kleeh"
+ ],
+ "description": "Confirmation modal dialog for AngularJS",
+ "license": "Apache-2.0",
+ "_release": "1.2.3",
+ "_resolution": {
+ "type": "version",
+ "tag": "1.2.3",
+ "commit": "d458be429fb7695059057f29745701cc86bc1cee"
+ },
+ "_source": "https://github.com/Schlogen/angular-confirm.git",
+ "_target": "1.2.3",
+ "_originalSource": "angular-confirm-modal"
+} \ No newline at end of file
diff --git a/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/.gitignore b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/.gitignore
new file mode 100644
index 00000000..a74e0114
--- /dev/null
+++ b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/.gitignore
@@ -0,0 +1,4 @@
+/.idea
+/node_modules
+/npm-debug.log
+/angular-confirm.min.js
diff --git a/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/.travis.yml b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/.travis.yml
new file mode 100644
index 00000000..3674c3c2
--- /dev/null
+++ b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/.travis.yml
@@ -0,0 +1,11 @@
+language: node_js
+node_js:
+ - "0.12"
+ - "0.11"
+ - "0.10"
+before_script:
+ - npm install -g gulp@3.9.0
+before_install:
+ - export CHROME_BIN=chromium-browser
+ - export DISPLAY=:99.0
+ - sh -e /etc/init.d/xvfb start \ No newline at end of file
diff --git a/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/LICENSE b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/LICENSE
new file mode 100644
index 00000000..50e80505
--- /dev/null
+++ b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/LICENSE
@@ -0,0 +1,202 @@
+Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "{}"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright 2015 James Kleeh
+
+ 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.
+
diff --git a/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/README.md b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/README.md
new file mode 100644
index 00000000..7b8d37ab
--- /dev/null
+++ b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/README.md
@@ -0,0 +1,15 @@
+angular-confirm
+===============
+[![Build Status](https://travis-ci.org/Schlogen/angular-confirm.svg?branch=master)](https://travis-ci.org/Schlogen/angular-confirm)
+
+Confirm modal dialog for AngularJS
+
+To use ui-bootstrap < 0.14.x you must keep on the 1.1.x release track for this module
+
+This module requires the Angular-UI $modal service http://angular-ui.github.io/bootstrap/#/modal.
+
+[NPM](https://www.npmjs.com/package/angular-confirm)
+
+To install with bower: `bower install angular-confirm-modal`
+
+[DEMO](http://schlogen.github.io/angular-confirm)
diff --git a/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/angular-confirm.js b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/angular-confirm.js
new file mode 100644
index 00000000..ed08ca63
--- /dev/null
+++ b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/angular-confirm.js
@@ -0,0 +1,108 @@
+/*
+ * angular-confirm
+ * https://github.com/Schlogen/angular-confirm
+ * @version v1.2.3 - 2016-01-26
+ * @license Apache
+ */
+(function (root, factory) {
+ 'use strict';
+ if (typeof define === 'function' && define.amd) {
+ define(['angular'], factory);
+ } else if (typeof module !== 'undefined' && typeof module.exports === 'object') {
+ module.exports = factory(require('angular'));
+ } else {
+ return factory(root.angular);
+ }
+}(this, function (angular) {
+angular.module('angular-confirm', ['ui.bootstrap.modal'])
+ .controller('ConfirmModalController', function ($scope, $uibModalInstance, data) {
+ $scope.data = angular.copy(data);
+
+ $scope.ok = function (closeMessage) {
+ $uibModalInstance.close(closeMessage);
+ };
+
+ $scope.cancel = function (dismissMessage) {
+ if (angular.isUndefined(dismissMessage)) {
+ dismissMessage = 'cancel';
+ }
+ $uibModalInstance.dismiss(dismissMessage);
+ };
+
+ })
+ .value('$confirmModalDefaults', {
+ template: '<div class="modal-header"><h3 class="modal-title">{{data.title}}</h3></div>' +
+ '<div class="modal-body">{{data.text}}</div>' +
+ '<div class="modal-footer">' +
+ '<button class="btn btn-primary" ng-click="ok()">{{data.ok}}</button>' +
+ '<button class="btn btn-default" ng-click="cancel()">{{data.cancel}}</button>' +
+ '</div>',
+ controller: 'ConfirmModalController',
+ defaultLabels: {
+ title: 'Confirm',
+ ok: 'OK',
+ cancel: 'Cancel'
+ }
+ })
+ .factory('$confirm', function ($uibModal, $confirmModalDefaults) {
+ return function (data, settings) {
+ var defaults = angular.copy($confirmModalDefaults);
+ settings = angular.extend(defaults, (settings || {}));
+
+ data = angular.extend({}, settings.defaultLabels, data || {});
+
+ if ('templateUrl' in settings && 'template' in settings) {
+ delete settings.template;
+ }
+
+ settings.resolve = {
+ data: function () {
+ return data;
+ }
+ };
+
+ return $uibModal.open(settings).result;
+ };
+ })
+ .directive('confirm', function ($confirm) {
+ return {
+ priority: 1,
+ restrict: 'A',
+ scope: {
+ confirmIf: "=",
+ ngClick: '&',
+ confirm: '@',
+ confirmSettings: "=",
+ confirmTitle: '@',
+ confirmOk: '@',
+ confirmCancel: '@'
+ },
+ link: function (scope, element, attrs) {
+
+ element.unbind("click").bind("click", function ($event) {
+
+ $event.preventDefault();
+
+ if (angular.isUndefined(scope.confirmIf) || scope.confirmIf) {
+
+ var data = {text: scope.confirm};
+ if (scope.confirmTitle) {
+ data.title = scope.confirmTitle;
+ }
+ if (scope.confirmOk) {
+ data.ok = scope.confirmOk;
+ }
+ if (scope.confirmCancel) {
+ data.cancel = scope.confirmCancel;
+ }
+ $confirm(data, scope.confirmSettings || {}).then(scope.ngClick);
+ } else {
+
+ scope.$apply(scope.ngClick);
+ }
+ });
+
+ }
+ }
+ });
+}));
diff --git a/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/bower.json b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/bower.json
new file mode 100644
index 00000000..b2af2b9e
--- /dev/null
+++ b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/bower.json
@@ -0,0 +1,11 @@
+{
+ "name": "angular-confirm-modal",
+ "main": "angular-confirm.min.js",
+ "version": "1.2.3",
+ "homepage": "https://github.com/Schlogen/angular-confirm",
+ "authors": [
+ "James Kleeh"
+ ],
+ "description": "Confirmation modal dialog for AngularJS",
+ "license": "Apache-2.0"
+}
diff --git a/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/gulpfile.js b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/gulpfile.js
new file mode 100644
index 00000000..456712d4
--- /dev/null
+++ b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/gulpfile.js
@@ -0,0 +1,29 @@
+var gulp = require('gulp'),
+ header = require('gulp-header'),
+ bump = require('gulp-bump'),
+ git = require('gulp-git'),
+ uglify = require('gulp-uglify'),
+ ngAnnotate = require('gulp-ng-annotate'),
+ rename = require("gulp-rename"),
+ karma = require('karma').server;
+
+gulp.task('test-unit', function(done) {
+ karma.start({
+ configFile: __dirname + '/test/karma.conf.js',
+ singleRun: true
+ }, done);
+});
+
+gulp.task('dest', function() {
+ gulp.src('./angular-confirm.js')
+ .pipe(ngAnnotate())
+ .pipe(uglify({preserveComments: 'all'}))
+ .pipe(rename("angular-confirm.min.js"))
+ .pipe(gulp.dest('./'))
+});
+
+gulp.task('bump-json', function (done) {
+ return gulp.src(['./package.json', './bower.json'])
+ .pipe(bump())
+ .pipe(gulp.dest('./'));
+}); \ No newline at end of file
diff --git a/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/package.json b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/package.json
new file mode 100644
index 00000000..0e68aeae
--- /dev/null
+++ b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/package.json
@@ -0,0 +1,41 @@
+{
+ "name": "angular-confirm",
+ "version": "1.2.3",
+ "description": "Angular Confirm Modal",
+ "main": "angular-confirm.min.js",
+ "scripts": {
+ "test": "gulp test-unit"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/Schlogen/angular-confirm.git"
+ },
+ "keywords": [
+ "angular",
+ "confirm",
+ "angular-ui",
+ "$modal"
+ ],
+ "author": "James Kleeh",
+ "license": "Apache-2.0",
+ "bugs": {
+ "url": "https://github.com/Schlogen/angular-confirm/issues"
+ },
+ "homepage": "https://github.com/Schlogen/angular-confirm",
+ "devDependencies": {
+ "angular": "1.4.7",
+ "angular-ui-bootstrap": "0.14.3",
+ "angular-mocks": "^1.4.7",
+ "gulp": "3.9.0",
+ "gulp-bump": "^1.0.0",
+ "gulp-git": "^1.6.0",
+ "gulp-header": "^1.7.1",
+ "gulp-ng-annotate": "^1.1.0",
+ "gulp-rename": "^1.2.2",
+ "gulp-uglify": "^1.4.2",
+ "jasmine-core": "^2.3.4",
+ "karma": "0.13.19",
+ "karma-chrome-launcher": "^0.2.2",
+ "karma-jasmine": "^0.3.6"
+ }
+}
diff --git a/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/test/karma.conf.js b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/test/karma.conf.js
new file mode 100644
index 00000000..886ed61d
--- /dev/null
+++ b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/test/karma.conf.js
@@ -0,0 +1,81 @@
+// Karma configuration
+// Generated on Tue Jul 14 2015 10:10:58 GMT-0400 (Eastern Daylight Time)
+
+module.exports = function(config) {
+ var configuration = {
+
+ // base path that will be used to resolve all patterns (eg. files, exclude)
+ basePath: '',
+
+
+ // frameworks to use
+ // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
+ frameworks: ['jasmine'],
+
+
+ // list of files / patterns to load in the browser
+ files: [
+ '../node_modules/angular/angular.js',
+ '../node_modules/angular-ui-bootstrap/ui-bootstrap-tpls.min.js',
+ '../node_modules/angular-mocks/angular-mocks.js',
+ '../angular-confirm.js',
+ 'unit/**/*Spec.js'
+ ],
+
+
+ // list of files to exclude
+ exclude: [
+ ],
+
+
+ // preprocess matching files before serving them to the browser
+ // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
+ preprocessors: {
+ },
+
+
+ // test results reporter to use
+ // possible values: 'dots', 'progress'
+ // available reporters: https://npmjs.org/browse/keyword/karma-reporter
+ reporters: ['progress'],
+
+
+ // web server port
+ port: 9876,
+
+
+ // enable / disable colors in the output (reporters and logs)
+ colors: true,
+
+
+ // level of logging
+ // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
+ logLevel: config.LOG_INFO,
+
+
+ // enable / disable watching file and executing tests whenever any file changes
+ autoWatch: true,
+
+
+ // start these browsers
+ // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
+ browsers: ['Chrome'],
+
+ customLaunchers: {
+ Chrome_travis_ci: {
+ base: 'Chrome',
+ flags: ['--no-sandbox']
+ }
+ },
+
+ // Continuous Integration mode
+ // if true, Karma captures browsers, runs the tests and exits
+ singleRun: false
+ };
+
+ if(process.env.TRAVIS){
+ configuration.browsers = ['Chrome_travis_ci'];
+ }
+
+ config.set(configuration);
+}
diff --git a/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/test/unit/confirmSpec.js b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/test/unit/confirmSpec.js
new file mode 100644
index 00000000..8434de40
--- /dev/null
+++ b/cvp/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/test/unit/confirmSpec.js
@@ -0,0 +1,244 @@
+describe('angular-confirm', function() {
+
+ var $rootScope, $uibModal;
+
+ beforeEach(angular.mock.module('angular-confirm', function ($provide) {
+
+ $provide.decorator('$uibModal', function($delegate) {
+ $uibModal = {
+ open: jasmine.createSpy('$uibModal.open', function(settings) {
+ return {result: settings};
+ })
+ };
+ return $uibModal;
+ });
+
+ $provide.decorator('$confirm', function($delegate) {
+ return jasmine.createSpy('$confirm', $delegate);
+ });
+
+ }));
+
+ beforeEach(angular.mock.inject(function (_$rootScope_) {
+ $rootScope = _$rootScope_;
+ }));
+
+ describe('ConfirmModalController', function() {
+ var $scope, controller, data = {testVal: 1}, $uibModalInstance;
+
+ beforeEach(angular.mock.inject(function($controller) {
+ $scope = $rootScope.$new();
+ $uibModalInstance = {
+ close: jasmine.createSpy('$uibModalInstance.close'),
+ dismiss: jasmine.createSpy('$uibModalInstance.dismiss'),
+ result: {
+ then: jasmine.createSpy('$uibModalInstance.result.then')
+ }
+ };
+ controller = $controller('ConfirmModalController', {"$scope": $scope, "$uibModalInstance": $uibModalInstance, "data": data});
+ }));
+
+ it("should copy the data, not use it as a reference", function() {
+ data.testVal = 2;
+ expect($scope.data.testVal).toEqual(1);
+ });
+
+ it("should call close when $scope.ok is invoked", function() {
+ $scope.ok();
+ expect($uibModalInstance.close).toHaveBeenCalled();
+ });
+
+ it("should call dismiss when $scope.cancel is invoked", function() {
+ $scope.cancel();
+ expect($uibModalInstance.dismiss).toHaveBeenCalledWith('cancel');
+ });
+
+ });
+
+ describe('$confirm factory', function() {
+
+ var $confirm, $confirmModalDefaults;
+
+ beforeEach(angular.mock.inject(function(_$confirm_, _$confirmModalDefaults_) {
+ $confirm = _$confirm_;
+ $confirm.and.callThrough();
+ $confirmModalDefaults = _$confirmModalDefaults_;
+ $uibModal.open.and.callThrough();
+ }));
+
+ it("should call $uibModal.open", function() {
+ $confirm();
+ expect($uibModal.open).toHaveBeenCalled();
+ });
+
+ it("should override the defaults with settings passed in", function() {
+ var settings = $confirm({}, {"template": "hello"});
+ expect(settings.template).toEqual("hello");
+ });
+
+ it("should not change the defaults", function() {
+ var settings = $confirm({}, {"templateUrl": "hello"});
+ expect(settings.templateUrl).toEqual("hello");
+ expect(settings.template).not.toBeDefined();
+ expect($confirmModalDefaults.template).toBeDefined();
+ expect($confirmModalDefaults.templateUrl).not.toBeDefined();
+ });
+
+ it("should override the default labels with the data passed in", function() {
+ var settings = $confirm({title: "Title"});
+ var data = settings.resolve.data();
+ expect(data.title).toEqual("Title");
+ expect(data.ok).toEqual('OK');
+ });
+
+ it("should remove template if templateUrl is passed in", function() {
+ var settings = $confirm({}, {templateUrl: "abc.txt"});
+ expect(settings.template).not.toBeDefined();
+ });
+
+ });
+
+ describe('confirm directive', function() {
+ var $scope, element, $confirm, data;
+
+ beforeEach(angular.mock.inject(function (_$confirm_, $compile) {
+ $confirm = _$confirm_;
+
+ $confirm.and.callFake(function(d) {
+ data = d;
+ return {then: function() {}}
+ });
+
+ $scope = $rootScope.$new();
+ $scope.click = jasmine.createSpy('$scope.click');
+ }));
+
+ describe('resolve properties in title', function() {
+ beforeEach(angular.mock.inject(function($compile) {
+ $scope.name = 'Joe';
+ element = angular.element('<button type="button" ng-click="click()" confirm="Are you sure, {{name}}?">Delete</button>');
+ $compile(element)($scope);
+ $scope.$digest();
+ }));
+
+ it("should resolve the name to the text property", function() {
+ element.triggerHandler('click');
+ expect(data.text).toEqual('Are you sure, Joe?');
+ });
+ });
+
+ describe('without confirmIf', function() {
+
+ beforeEach(angular.mock.inject(function($compile) {
+ element = angular.element('<button type="button" ng-click="click()" confirm="Are you sure?">Delete</button>');
+ $compile(element)($scope);
+ $scope.$digest();
+ }));
+
+ it("should call confirm on click and not call the function", function() {
+ element.triggerHandler('click');
+ expect($scope.click).not.toHaveBeenCalled();
+ expect($confirm).toHaveBeenCalled();
+ });
+
+ });
+
+ describe('with confirmIf option', function() {
+
+ beforeEach(angular.mock.inject(function($compile) {
+ element = angular.element('<button type="button" ng-click="click()" confirm="Are you sure?" confirm-if="truthy">Delete</button>');
+ $compile(element)($scope);
+ $scope.$digest();
+ }));
+
+ it("should call confirm on click and not call the function", function() {
+ $scope.truthy = true;
+ $scope.$apply();
+ element.triggerHandler('click');
+ expect($scope.click).not.toHaveBeenCalled();
+ expect($confirm).toHaveBeenCalled();
+ });
+
+ it("should call the function", function() {
+ $scope.truthy = false;
+ $scope.$apply();
+ element.triggerHandler('click');
+ expect($scope.click).toHaveBeenCalled();
+ expect($confirm).not.toHaveBeenCalled();
+ });
+
+ });
+
+ describe('with confirmTitle option', function() {
+ beforeEach(angular.mock.inject(function($compile) {
+ $scope.name = 'Joe';
+ element = angular.element('<button type="button" ng-click="click()" confirm="Are you sure?" confirm-title="Hello, {{name}}!">Delete</button>');
+ $compile(element)($scope);
+ $scope.$digest();
+ }));
+
+ it("should resolve the confirmTitle to the title property", function() {
+ element.triggerHandler('click');
+ expect(data.title).toEqual('Hello, Joe!');
+ });
+
+ });
+
+ describe('with confirmOk option', function() {
+ beforeEach(angular.mock.inject(function($compile) {
+ $scope.name = 'Joe';
+ element = angular.element('<button type="button" ng-click="click()" confirm="Are you sure?" confirm-ok="Okie Dokie, {{name}}!">Delete</button>');
+ $compile(element)($scope);
+ $scope.$digest();
+ }));
+
+ it("should resolve the confirmTitle to the title property", function() {
+ element.triggerHandler('click');
+ expect(data.ok).toEqual('Okie Dokie, Joe!');
+ });
+ });
+
+ describe('with confirmCancel option', function() {
+ beforeEach(angular.mock.inject(function($compile) {
+ $scope.name = 'Joe';
+ element = angular.element('<button type="button" ng-click="click()" confirm="Are you sure?" confirm-cancel="No Way, {{name}}!">Delete</button>');
+ $compile(element)($scope);
+ $scope.$digest();
+ }));
+
+ it("should resolve the confirmTitle to the title property", function() {
+ element.triggerHandler('click');
+ expect(data.cancel).toEqual('No Way, Joe!');
+ });
+ });
+
+ describe('with confirmSettings option', function() {
+ beforeEach(angular.mock.inject(function($compile) {
+ $scope.settings = {name: 'Joe'};
+ element = angular.element('<button type="button" ng-click="click()" confirm="Are you sure?" confirm-settings="settings">Delete</button>');
+ $compile(element)($scope);
+ $scope.$digest();
+ }));
+
+ it("should pass the settings to $confirm", function() {
+ element.triggerHandler('click');
+ expect($confirm).toHaveBeenCalledWith({text: "Are you sure?"}, $scope.settings)
+ });
+ });
+
+ describe('with confirmSettings option direct entry', function() {
+ beforeEach(angular.mock.inject(function($compile) {
+ element = angular.element('<button type="button" ng-click="click()" confirm="Are you sure?" confirm-settings="{name: \'Joe\'}">Delete</button>');
+ $compile(element)($scope);
+ $scope.$digest();
+ }));
+
+ it("should pass the settings to $confirm", function() {
+ element.triggerHandler('click');
+ expect($confirm).toHaveBeenCalledWith({text: "Are you sure?"}, {name: "Joe"})
+ });
+ });
+
+ });
+
+}); \ No newline at end of file