fix the authentication=false in testcases page 05/51905/3
authorthuva4 <tharma.thuva@gmail.com>
Thu, 15 Mar 2018 14:21:43 +0000 (19:51 +0530)
committerThuvarakan Tharmarajasingam <tharma.thuva@gmail.com>
Fri, 16 Mar 2018 12:22:10 +0000 (12:22 +0000)
fix the authentication error in testcases page
when authenticate=false + tests

JIRA: RELENG-340

Change-Id: Ic2ad2a9676de46e9e6b8209750a5728eea9fa9ab
Signed-off-by: thuva4 <tharma.thuva@gmail.com>
testapi/opnfv_testapi/tests/UI/e2e/authenticateFalseSpec.js
testapi/opnfv_testapi/ui/components/projects/project/testCases/testCases.html
testapi/opnfv_testapi/ui/components/projects/project/testCases/testCasesController.js

index 3212b86..e287f29 100644 (file)
@@ -47,7 +47,7 @@ describe('testing the pods page for anonymous user', function () {
     });
 });
 
-describe('testing the pods page for anonymous user', function () {
+describe('testing the project page for anonymous user', function () {
     beforeEach(function(){
         mock([
             {
@@ -383,3 +383,158 @@ describe('testing the scenarios page for anonymous user', function () {
 });
 
 
+describe('testing the testCases page for anonymous user', function () {
+    beforeEach(function(){
+        mock([
+            {
+                request: {
+                    path: '/api/v1/projects',
+                    method: 'GET'
+                },
+                response: {
+                    data: {
+                        "projects": [
+                            {
+                                "creator": "thuva4",
+                                "_id": "5a0c022f9a07c846d3c2cc94",
+                                "creation_date": "2017-11-15 14:30:31.200259",
+                                "description": "dsfsd",
+                                "name": "testproject"
+                            }
+                        ]
+                    }
+                }
+            },
+            {
+                request: {
+                    path: '/api/v1/projects/testproject',
+                    method: 'GET'
+                },
+                response: {
+                    data: {
+                        "creator": "thuva4",
+                        "_id": "5a0c022f9a07c846d3c2cc94",
+                        "creation_date": "2017-11-15 14:30:31.200259",
+                        "description": "dsfsd",
+                        "name": "testproject"
+                    }
+                }
+            },
+            {
+                request: {
+                    path: '/api/v1/projects/testproject/cases',
+                    method: 'GET'
+                },
+                response: {
+                    data: {
+                        "testcases": [
+                            {
+                                "project_name": "testproject",
+                                "run": null,
+                                "description": null,
+                                "tags": null,
+                                "creation_date": "2017-12-20 18:47:04.025544",
+                                "dependencies": null,
+                                "tier": null,
+                                "trust": null,
+                                "blocking": null,
+                                "name": "testCase",
+                                "ci_loop": null,
+                                "url": null,
+                                "version": null,
+                                "criteria": null,
+                                "domains": null,
+                                "_id": "5a3a62d09a07c836e06858fb",
+                                "catalog_description": null
+                            }
+                        ]
+                    }
+                }
+            },
+            {
+                request: {
+                    path: '/api/v1/projects/testproject/cases/testCase',
+                    method: 'GET'
+                },
+                response: {
+                    data: {
+                            "project_name": "testproject",
+                            "run": null,
+                            "description": null,
+                            "tags": null,
+                            "creation_date": "2017-12-20 18:47:04.025544",
+                            "dependencies": null,
+                            "tier": null,
+                            "trust": null,
+                            "blocking": null,
+                            "name": "testCase",
+                            "ci_loop": null,
+                            "url": null,
+                            "version": null,
+                            "criteria": null,
+                            "domains": null,
+                            "_id": "5a3a62d09a07c836e06858fb",
+                            "catalog_description": null
+                    }
+                }
+            }
+        ]);
+    });
+
+    afterEach(function(){
+        mock.teardown();
+    });
+
+    it( 'should show the testCases for anonymous user', function() {
+        browser.get(baseURL+"#/projects/testproject");
+        var testCases = element(by.linkText('Test Cases'));
+        testCases.click();
+        var row = element.all(by.repeater('(index, testcase) in testCasesCtrl.data.testcases')).first();
+        var cells = row.all(by.tagName('td'));
+        expect(cells.get(1).getText()).toContain("testCase");
+    });
+
+    it( 'navigate anonymous user to testCase page', function() {
+        browser.get(baseURL+"#/projects/testproject");
+        var testCases = element(by.linkText('Test Cases'));
+        testCases.click();
+        var testCase = element(by.linkText('testCase'));
+        testCase.click();
+        var EC = browser.ExpectedConditions;
+        browser.wait(EC.urlContains(baseURL+ '#/projects/testproject/testCase'), 10000);
+    });
+
+    it('create button is visible for anonymous user ', function () {
+        browser.get(baseURL+"#/projects/testproject");
+        var testCases = element(by.linkText('Test Cases'));
+        testCases.click();
+        var buttonCreate = element(by.buttonText('Create'));
+        expect(buttonCreate.isDisplayed()).toBe(true);
+    });
+
+    it('Delete button is not visible for anonymous user ', function () {
+        browser.get(baseURL+"#/projects/testproject");
+        var testCases = element(by.linkText('Test Cases'));
+        testCases.click();
+        var buttonDelete = element(by.buttonText('Delete'));
+        expect(buttonDelete.isDisplayed()).toBe(true);
+    });
+
+    it('delete Operation is visible for anonymous user ', function () {
+        browser.get(baseURL+"#/projects/testproject");
+        var testCases = element(by.linkText('Test Cases'));
+        testCases.click();
+        var deleteOperation = element(by.css('a[title=Delete]'));
+        expect(deleteOperation.isDisplayed()).toBe(true);
+    });
+
+    it('Edit Operation is visible for anonymous user ', function () {
+        browser.get(baseURL+"#/projects/testproject");
+        var testCases = element(by.linkText('Test Cases'));
+        testCases.click();
+        var editOperation = element(by.css('a[title=Edit]'));
+        expect(editOperation.isDisplayed()).toBe(true);
+    });
+});
+
+
index ee87e0a..395db03 100644 (file)
@@ -1,68 +1,68 @@
 <div ng-controller="TestCasesController as testCasesCtrl" class="col-md-12">
-<div class="row podsTable" style="vertical-align:middle">
-    <div class="col-sm-1 pull-right" ng-class="{ 'hidden': ! ((auth.projectNames.length>0) &&
-        auth.isAuthenticated) }" >
-            <button type="button" class="btn btn-danger" ng-click="testCasesCtrl.openBatchDeleteModal()">
-              <i class="fa fa-minus"></i> Delete</button>
-    </div>
-    <div class="col-sm-1 pull-right"  ng-class="{ 'hidden': ! ((auth.projectNames.length>0) &&
-        auth.isAuthenticated) }">
-        <button type="button" class="btn btn-success" ng-click="testCasesCtrl.openCreateModal()">
-          <i class="fa fa-plus"></i> Create</button>
-    </div>
-</div>
-<div class='clo-md-12'>
-    <div ng-show="testCasesCtrl.showError" class="alert alert-danger" role="alert">
-        <span class="pull-right">&nbsp;{{testCasesCtrl.error}}</span>
-        <span class="glyphicon glyphicon-exclamation-sign pull-right" aria-hidden="true" >Error:</span>
-    </div>
-    <div ng-show="testCasesCtrl.showSuccess" class="alert alert-success" role="alert">
-        <span class="pull-right">&nbsp;{{testCasesCtrl.successMessage}}</span>
-        <span class="glyphicon glyphicon-ok pull-right" aria-hidden="true"></span>
-    </div>
-</div>
-<div class='clo-md-12' style="padding-right:0px">
-    <div class="table-responsive">
-        <table class="table table-bordered table-hover"  ng-data="testCasesCtrl.data.testcases">
-        <thead>
-        <tr style="
-        text-align: center;">
-            <th style="width: 1%;">Bulk Select</th>
-            <th style="width: 19%;">Name</th>
-            <th style="width: 20%;">Tier</th>
-            <th style="width: 20%;">Blocking</th>
-            <th style="width: 20%;">CI&nbsp;Loop</th>
-            <th style="width: 20%;" ng-class="{'hidden': ! ((auth.projectNames.length>0) && auth.isAuthenticated)}">Operations</th>
-        </tr>
-        </thead>
-        <tbody>
-        <tr ng-repeat-start="(index, testcase) in testCasesCtrl.data.testcases" style="padding:9px">
-            <td>
-            <div class="text-center">
-                    <input type="checkbox" value="{{project.name}}"  ng-model="testCasesCtrl.checkBox[index]" >
-                </div>
-            </td>
-            <td>
-                <a class="text-info" ng-click="testCasesCtrl.viewTestCase(testcase.name, testcase.project_name)">
-                    {{testcase.name}}
-                </a>
-            </td>
-            <td>{{testcase.tier}}</td>
-            <td>{{testcase.blocking}}</td>
-            <td>{{testcase.ci_loop}}</td>
-            <td ng-class="{'hidden': ! ((auth.projectNames.length>0) && auth.isAuthenticated)}">
-                <span class="podsTable-col">
-                    <a class="text-warning" ng-click="testCasesCtrl.openUpdateTestModal(testcase.name)" title="Edit">
-                        <i class="fa fa-pencil-square-o"></i></a>
-                    <a class="text-danger"  ng-click="testCasesCtrl.openDeleteTestModal(testcase.name)" title="Delete">
-                        <i class="fa fa-trash-o"></i></a>
-                </span>
-            </td>
-        </tr>
-        <tr ng-repeat-end=>
-        </tr>
-        </tbody>
-        </table>
-    </div>
-</div>
-</div>
+        <div class="row podsTable" style="vertical-align:middle">
+            <div class="col-sm-1 pull-right" ng-class="{ 'hidden': !((auth.projectNames.length>0) &&
+                auth.isAuthenticated) && authenticate }" >
+                    <button type="button" class="btn btn-danger" ng-click="testCasesCtrl.openBatchDeleteModal()">
+                      <i class="fa fa-minus"></i> Delete</button>
+            </div>
+            <div class="col-sm-1 pull-right"  ng-class="{ 'hidden': ! ((auth.projectNames.length>0) &&
+                auth.isAuthenticated) && authenticate }">
+                <button type="button" class="btn btn-success" ng-click="testCasesCtrl.openCreateModal()">
+                  <i class="fa fa-plus"></i> Create</button>
+            </div>
+        </div>
+        <div class='clo-md-12'>
+            <div ng-show="testCasesCtrl.showError" class="alert alert-danger" role="alert">
+                <span class="pull-right">&nbsp;{{testCasesCtrl.error}}</span>
+                <span class="glyphicon glyphicon-exclamation-sign pull-right" aria-hidden="true" >Error:</span>
+            </div>
+            <div ng-show="testCasesCtrl.showSuccess" class="alert alert-success" role="alert">
+                <span class="pull-right">&nbsp;{{testCasesCtrl.successMessage}}</span>
+                <span class="glyphicon glyphicon-ok pull-right" aria-hidden="true"></span>
+            </div>
+        </div>
+        <div class='clo-md-12' style="padding-right:0px">
+            <div class="table-responsive">
+                <table class="table table-bordered table-hover"  ng-data="testCasesCtrl.data.testcases">
+                <thead>
+                <tr style="
+                text-align: center;">
+                    <th style="width: 1%;">Bulk Select</th>
+                    <th style="width: 19%;">Name</th>
+                    <th style="width: 20%;">Tier</th>
+                    <th style="width: 20%;">Blocking</th>
+                    <th style="width: 20%;">CI&nbsp;Loop</th>
+                    <th style="width: 20%;" ng-class="{'hidden': ! ((auth.projectNames.length>0) && auth.isAuthenticated) && authenticate}">Operations</th>
+                </tr>
+                </thead>
+                <tbody>
+                <tr ng-repeat-start="(index, testcase) in testCasesCtrl.data.testcases" style="padding:9px">
+                    <td>
+                    <div class="text-center">
+                            <input type="checkbox" value="{{project.name}}"  ng-model="testCasesCtrl.checkBox[index]" >
+                        </div>
+                    </td>
+                    <td>
+                        <a class="text-info" ng-click="testCasesCtrl.viewTestCase(testcase.name, testcase.project_name)">
+                            {{testcase.name}}
+                        </a>
+                    </td>
+                    <td>{{testcase.tier}}</td>
+                    <td>{{testcase.blocking}}</td>
+                    <td>{{testcase.ci_loop}}</td>
+                    <td ng-class="{'hidden': ! ((auth.projectNames.length>0) && auth.isAuthenticated) && authenticate}">
+                        <span class="podsTable-col">
+                            <a class="text-warning" ng-click="testCasesCtrl.openUpdateTestModal(testcase.name)" title="Edit">
+                                <i class="fa fa-pencil-square-o"></i></a>
+                            <a class="text-danger"  ng-click="testCasesCtrl.openDeleteTestModal(testcase.name)" title="Delete">
+                                <i class="fa fa-trash-o"></i></a>
+                        </span>
+                    </td>
+                </tr>
+                <tr ng-repeat-end=>
+                </tr>
+                </tbody>
+                </table>
+            </div>
+        </div>
+        </div>
\ No newline at end of file
index 9a865d3..4d6153e 100644 (file)
@@ -21,7 +21,7 @@
 
         TestCasesController.$inject = [
         '$scope', '$http', '$filter', '$state', '$window', '$uibModal', 'testapiApiUrl','raiseAlert',
-        'confirmModal'
+        'confirmModal', 'authenticate'
     ];
 
     /**
@@ -31,7 +31,7 @@
      * in them.
      */
     function TestCasesController($scope, $http, $filter, $state, $window, $uibModal, testapiApiUrl,
-        raiseAlert, confirmModal) {
+        raiseAlert, confirmModal, authenticate) {
         var ctrl = this;
         ctrl.loadDetails = loadDetails;
         ctrl.name = $state.params['name'];