Browse Source

Fix l10n promises

tags/v8.0.0alpha1
Vincent Petry 9 years ago
parent
commit
ffe57d89e4
2 changed files with 11 additions and 6 deletions
  1. 5
    4
      core/js/l10n.js
  2. 6
    2
      core/js/tests/specs/l10nSpec.js

+ 5
- 4
core/js/l10n.js View File

@@ -37,10 +37,11 @@ OC.L10N = {
load: function(appName, callback) {
// already available ?
if (this._bundles[appName] || OC.getLocale() === 'en') {
if (callback) {
callback();
}
return;
var deferred = $.Deferred();
var promise = deferred.promise();
promise.then(callback);
deferred.resolve();
return promise;
}

var self = this;

+ 6
- 2
core/js/tests/specs/l10nSpec.js View File

@@ -130,19 +130,23 @@ describe('OC.L10N tests', function() {
localeStub.restore();
});
it('calls callback if translation already available', function() {
var promiseStub = sinon.stub();
var callbackStub = sinon.stub();
OC.L10N.register(TEST_APP, {
'Hello world!': 'Hallo Welt!'
});
OC.L10N.load(TEST_APP, callbackStub);
OC.L10N.load(TEST_APP, callbackStub).then(promiseStub);
expect(callbackStub.calledOnce).toEqual(true);
expect(promiseStub.calledOnce).toEqual(true);
expect(fakeServer.requests.length).toEqual(0);
});
it('calls callback if locale is en', function() {
var localeStub = sinon.stub(OC, 'getLocale').returns('en');
var promiseStub = sinon.stub();
var callbackStub = sinon.stub();
OC.L10N.load(TEST_APP, callbackStub);
OC.L10N.load(TEST_APP, callbackStub).then(promiseStub);
expect(callbackStub.calledOnce).toEqual(true);
expect(promiseStub.calledOnce).toEqual(true);
expect(fakeServer.requests.length).toEqual(0);
});
});

Loading…
Cancel
Save