Normalize download_scheme preference to lower case in PG
Bug: Issue 5180 Bug: Issue 5142 Change-Id: Ic946e0b11b2eceb2568b1f6f33981682c65fd1e1
This commit is contained in:
		@@ -66,7 +66,8 @@
 | 
			
		||||
      if (!loggedIn) { return; }
 | 
			
		||||
      this.$.restAPI.getPreferences().then(function(prefs) {
 | 
			
		||||
        if (prefs.download_scheme) {
 | 
			
		||||
          this._selectedScheme = prefs.download_scheme;
 | 
			
		||||
          // Note (issue 5180): normalize the download scheme with lower-case.
 | 
			
		||||
          this._selectedScheme = prefs.download_scheme.toLowerCase();
 | 
			
		||||
        }
 | 
			
		||||
      }.bind(this));
 | 
			
		||||
    },
 | 
			
		||||
@@ -74,7 +75,8 @@
 | 
			
		||||
    _computeDownloadCommands: function(change, patchNum, _selectedScheme) {
 | 
			
		||||
      var commandObj;
 | 
			
		||||
      for (var rev in change.revisions) {
 | 
			
		||||
        if (change.revisions[rev]._number == patchNum) {
 | 
			
		||||
        if (change.revisions[rev]._number == patchNum &&
 | 
			
		||||
            change.revisions[rev].fetch.hasOwnProperty(_selectedScheme)) {
 | 
			
		||||
          commandObj = change.revisions[rev].fetch[_selectedScheme].commands;
 | 
			
		||||
          break;
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -226,4 +226,23 @@ limitations under the License.
 | 
			
		||||
          firstSchemeButton.getAttribute('data-scheme'));
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  test('normalize scheme from preferences', function(done) {
 | 
			
		||||
    stub('gr-rest-api-interface', {
 | 
			
		||||
      getPreferences: function() {
 | 
			
		||||
        return Promise.resolve({download_scheme: 'REPO'});
 | 
			
		||||
      },
 | 
			
		||||
    });
 | 
			
		||||
    element = fixture('loggedIn');
 | 
			
		||||
    element.change = getChangeObject();
 | 
			
		||||
    element.patchNum = 1;
 | 
			
		||||
    element.config = {
 | 
			
		||||
      schemes: {'anonymous http': {}, http: {}, repo: {}, ssh: {}},
 | 
			
		||||
      archives: ['tgz', 'tar', 'tbz2', 'txz'],
 | 
			
		||||
    };
 | 
			
		||||
    element.$.restAPI.getPreferences.lastCall.returnValue.then(function() {
 | 
			
		||||
      assert.equal(element._selectedScheme, 'repo');
 | 
			
		||||
      done();
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
</script>
 | 
			
		||||
 
 | 
			
		||||
@@ -212,6 +212,12 @@
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    savePreferences: function(prefs, opt_errFn, opt_ctx) {
 | 
			
		||||
      // Note (Issue 5142): normalize the download scheme with lower case before
 | 
			
		||||
      // saving.
 | 
			
		||||
      if (prefs.download_scheme) {
 | 
			
		||||
        prefs.download_scheme = prefs.download_scheme.toLowerCase();
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      return this.send('PUT', '/accounts/self/preferences', prefs, opt_errFn,
 | 
			
		||||
          opt_ctx);
 | 
			
		||||
    },
 | 
			
		||||
 
 | 
			
		||||
@@ -412,5 +412,12 @@ limitations under the License.
 | 
			
		||||
        done();
 | 
			
		||||
      });
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    test('savPreferences normalizes download scheme', function() {
 | 
			
		||||
      var sendStub = sandbox.stub(element, 'send');
 | 
			
		||||
      element.savePreferences({download_scheme: 'HTTP'});
 | 
			
		||||
      assert.isTrue(sendStub.called);
 | 
			
		||||
      assert.equal(sendStub.lastCall.args[2].download_scheme, 'http');
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
</script>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user