diff options
| author | Lucas Galfasó | 2013-05-07 09:14:57 -0300 | 
|---|---|---|
| committer | Pete Bacon Darwin | 2013-05-10 20:03:24 +0100 | 
| commit | 67a4a25b890fada0043c1ff98e5437d793f44d0c (patch) | |
| tree | b9b494506edb955c7c3f6b3406ece36da636f912 | |
| parent | f6caab598f91eaeb0f06395620e38816154faa70 (diff) | |
| download | angular.js-67a4a25b890fada0043c1ff98e5437d793f44d0c.tar.bz2 | |
fix(ngPluralize): handle the empty string as a valid override
Fix the check for overrides so it is able to handle the empty string
Closes #2575
| -rw-r--r-- | src/ng/directive/ngPluralize.js | 2 | ||||
| -rw-r--r-- | test/ng/directive/ngPluralizeSpec.js | 15 | 
2 files changed, 16 insertions, 1 deletions
| diff --git a/src/ng/directive/ngPluralize.js b/src/ng/directive/ngPluralize.js index a02035ea..2aeb9703 100644 --- a/src/ng/directive/ngPluralize.js +++ b/src/ng/directive/ngPluralize.js @@ -194,7 +194,7 @@ var ngPluralizeDirective = ['$locale', '$interpolate', function($locale, $interp          if (!isNaN(value)) {            //if explicit number rule such as 1, 2, 3... is defined, just use it. Otherwise,            //check it against pluralization rules in $locale service -          if (!whens[value]) value = $locale.pluralCat(value - offset); +          if (!(value in whens)) value = $locale.pluralCat(value - offset);             return whensExpFns[value](scope, element, true);          } else {            return ''; diff --git a/test/ng/directive/ngPluralizeSpec.js b/test/ng/directive/ngPluralizeSpec.js index e790518c..0ca2d23e 100644 --- a/test/ng/directive/ngPluralizeSpec.js +++ b/test/ng/directive/ngPluralizeSpec.js @@ -99,6 +99,21 @@ describe('ngPluralize', function() {    }); +  describe('edge cases', function() { +    it('should be able to handle empty strings as possible values', inject(function($rootScope, $compile) { +      element = $compile( +          '<ng:pluralize count="email"' + +                         "when=\"{'0': ''," + +                                 "'one': 'Some text'," + +                                 "'other': 'Some text'}\">" + +          '</ng:pluralize>')($rootScope); +      $rootScope.email = '0'; +      $rootScope.$digest(); +      expect(element.text()).toBe(''); +    })); +  }); + +    describe('deal with pluralized strings with offset', function() {      it('should show single/plural strings with offset', inject(function($rootScope, $compile) {        element = $compile( | 
