Skip to content
This repository has been archived by the owner on Jan 29, 2024. It is now read-only.

Commit

Permalink
feat(translateService): implements proposedLanguage()
Browse files Browse the repository at this point in the history
  • Loading branch information
0x-r4bbit committed Jul 23, 2013
1 parent db6eda6 commit 6d34792
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 0 deletions.
15 changes: 15 additions & 0 deletions src/translate.js
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ angular.module('pascalprecht.translate').provider('$translate', ['$STORAGE_KEY',
$preferredLanguage,
$fallbackLanguage,
$uses,
$nextLang,
$storageFactory,
$storageKey = $STORAGE_KEY,
$storagePrefix,
Expand Down Expand Up @@ -620,6 +621,19 @@ angular.module('pascalprecht.translate').provider('$translate', ['$STORAGE_KEY',
return $fallbackLanguage;
};

/**
* @ngdoc function
* @name pascalprecht.translate.$translate#proposedLanguage
* @methodOf pascalprecht.translate.$translate
*
* @description
* Returns the language key of language that is currently loaded asynchronously.
*
* @return {string} language key
*/
$translate.proposedLanguage = function () {
return $nextLang;
};

/**
* @ngdoc function
Expand Down Expand Up @@ -662,6 +676,7 @@ angular.module('pascalprecht.translate').provider('$translate', ['$STORAGE_KEY',
if (!$translationTable[key]) {

pendingLoader = true;
$nextLang = key;

$injector.get($loaderFactory)(angular.extend($loaderOptions, {
key: key
Expand Down
43 changes: 43 additions & 0 deletions test/unit/translateServiceSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -808,4 +808,47 @@ describe('pascalprecht.translate', function () {
});
});
});

describe('proposedLanguage()', function () {

var $translate;

beforeEach(module('pascalprecht.translate', function ($translateProvider, $provide) {

$provide.factory('customLoader', function ($q, $timeout) {
return function (options) {
var deferred = $q.defer();

$timeout(function () {
deferred.resolve({});
}, 1000);

return deferred.promise;
};
});

$translateProvider.useLoader('customLoader');
$translateProvider.preferredLanguage('en');
}));

beforeEach(inject(function (_$translate_) {
$translate = _$translate_;
}));

it('should have a method proposedLanguage()', function () {
expect($translate.proposedLanguage).toBeDefined();
});

it('should be a use function ', function () {
expect(typeof $translate.proposedLanguage).toBe('function');
});

it('should return a string', function () {
expect(typeof $translate.proposedLanguage()).toBe('string');
});

it('should return proposedLanguage', function () {
expect($translate.proposedLanguage()).toEqual('en');
});
});
});

0 comments on commit 6d34792

Please sign in to comment.