From b3e40f026d655501bfa581452c447784604ecb05 Mon Sep 17 00:00:00 2001 From: xudan Date: Fri, 6 Jul 2018 05:16:40 -0400 Subject: Move all web portal code to the new repo dovetail-webportal This is only the first step to simply copy the file here. There still need some more work to make sure all work well. All the changes will be submitted with other patches to make it easily to review. JIRA: DOVETAIL-671 Change-Id: I64d32a9df562184166b6199e2719f298687d1a0a Signed-off-by: xudan --- .../angular-confirm-modal/test/unit/confirmSpec.js | 244 +++++++++++++++++++++ 1 file changed, 244 insertions(+) create mode 100644 3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/test/unit/confirmSpec.js (limited to '3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/test/unit') diff --git a/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/test/unit/confirmSpec.js b/3rd_party/static/testapi-ui/assets/lib/angular-confirm-modal/test/unit/confirmSpec.js new file mode 100644 index 0000000..8434de4 --- /dev/null +++ b/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(''); + $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(''); + $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(''); + $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(''); + $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(''); + $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(''); + $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(''); + $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(''); + $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 -- cgit 1.2.3-korg