Bläddra i källkod

AMBARI-7766. Admin View: IE10 issues when sorting a new user, and toggling visibility of View (alejandro)

Alejandro Fernandez 10 år sedan
förälder
incheckning
f873b147a4

+ 13 - 0
ambari-admin/src/main/resources/ui/admin-web/app/scripts/app.js

@@ -58,6 +58,19 @@ angular.module('ambariAdminConsole', [
     }
   }]);
 
+  $provide.factory('TimestampHttpInterceptor', [function($q) {
+    return {
+      request: function(config) {
+        if (config && config.method === 'GET' && config.url.indexOf('html') === -1) {
+          config.url += config.url.indexOf('?') < 0 ? '?' : '&';
+          config.url += '_=' + new Date().getTime();
+         }
+         return config || $q.when(config);
+      }
+   };
+  }]);
+  $httpProvider.interceptors.push('TimestampHttpInterceptor');
+
   $provide.decorator('ngFormDirective', ['$delegate', function($delegate) {
     var ngForm = $delegate[0], controller = ngForm.controller;
     ngForm.controller = ['$scope', '$element', '$attrs', '$injector', function(scope, element, attrs, $injector) {

+ 42 - 0
ambari-admin/src/main/resources/ui/admin-web/test/unit/common/app_test.js

@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ */
+
+describe('#App', function () {
+
+  describe('HTTP', function () {
+    var $httpBackend, $http;
+    
+    beforeEach(module('ambariAdminConsole', function($provide){
+
+    }));
+    afterEach(function() {
+      $httpBackend.verifyNoOutstandingExpectation();
+      $httpBackend.verifyNoOutstandingRequest();
+    });
+    beforeEach(inject(function (_$httpBackend_, _$http_, $rootScope) {
+      $http = _$http_;
+      $httpBackend = _$httpBackend_;
+    }));
+
+    it('should add "_" as timestamp to all GET requests', function () {
+      $httpBackend.expectGET(/\/api\/v1\/testresource\?_=\d+/).respond(200);
+      $http.get('/api/v1/testresource');
+      $httpBackend.flush();
+    });
+  });
+});

+ 2 - 2
ambari-admin/src/main/resources/ui/admin-web/test/unit/controllers/CreateViewInstanceCtrl.js

@@ -33,10 +33,10 @@ describe('#CreateViewInstanceCtrl', function () {
     spyOn(View, 'createInstance').andReturn($q.defer().promise);
 
     $httpBackend = _$httpBackend_;
-    $httpBackend.whenGET('/api/v1/views/TestView?versions/ViewVersionInfo/status=DEPLOYED').respond(200, {
+    $httpBackend.whenGET(/\/api\/v1\/views\/TestView\?.+/).respond(200, {
       "versions": [{"ViewVersionInfo": {}}]
     });
-    $httpBackend.whenGET('/api/v1/views/TestView/versions/1.0.0').respond(200, {
+    $httpBackend.whenGET(/\/api\/v1\/views\/TestView\/versions\/1\.0\.0/).respond(200, {
       "ViewVersionInfo": {}
     });
     scope = $rootScope.$new();

+ 2 - 2
ambari-admin/src/main/resources/ui/admin-web/test/unit/controllers/mainCtrl_test.js

@@ -35,8 +35,8 @@ describe('#Auth', function () {
       deferred.resolve('c1');
       $window = _$window_;
       $httpBackend = _$httpBackend_;
-      $httpBackend.whenGET('/api/v1/logout').respond(200,{message: "successfully logged out"});
-      $httpBackend.whenGET('/api/v1/views?fields=versions%2Finstances%2FViewInstanceInfo&versions%2FViewVersionInfo%2Fsystem=false&versions%2Finstances%2FViewInstanceInfo%2Fvisible=true')
+      $httpBackend.whenGET(/\/api\/v1\/logout\?_=\d+/).respond(200,{message: "successfully logged out"});
+      $httpBackend.whenGET(/\/api\/v1\/views.+/)
         .respond(200,{
           "href": "http://c6401.ambari.apache.org:8080/api/v1/views?fields=versions/instances/ViewInstanceInfo&versions/ViewVersionInfo/system=false&versions/instances/ViewInstanceInfo/visible=true",
           "items": [