diff options
| author | Igor Minar | 2011-08-12 02:28:45 -0700 |
|---|---|---|
| committer | Igor Minar | 2011-08-14 23:44:21 -0700 |
| commit | 37b5c5cfe9df70fa2a2c6c681a903b7c356aec74 (patch) | |
| tree | 53a01012cd69c194d40325613313450a1285d494 | |
| parent | 966cbd4cf8d795b1706ff400f604c6002d7e81f9 (diff) | |
| download | angular.js-37b5c5cfe9df70fa2a2c6c681a903b7c356aec74.tar.bz2 | |
break(date): remove support for 'long', 'longtime' date formats and 'z' flag
The support for the 'z' formatting flag was removed becase the timezone
info can't be retrieved from the browser apis (except for en-US locale
on some but not all browsers). For this reason we don't want to support
this flag at all.
Related to this, since the 'long' and 'longtime' datetime formats require
the 'z' flag in the formatting string, we are removing support for this
format as well.
| -rw-r--r-- | src/angular-mocks.js | 8 | ||||
| -rw-r--r-- | src/filters.js | 21 | ||||
| -rw-r--r-- | src/service/locale.js | 2 | ||||
| -rw-r--r-- | test/FiltersSpec.js | 41 | ||||
| -rw-r--r-- | test/angular-mocksSpec.js | 6 |
5 files changed, 13 insertions, 65 deletions
diff --git a/src/angular-mocks.js b/src/angular-mocks.js index 719e87b3..066ccea5 100644 --- a/src/angular-mocks.js +++ b/src/angular-mocks.js @@ -439,7 +439,7 @@ function MockLogFactory() { * </pre> * */ -function TzDate(offset, timestamp, toStringVal) { +function TzDate(offset, timestamp) { if (angular.isString(timestamp)) { var tsStr = timestamp; @@ -463,10 +463,6 @@ function TzDate(offset, timestamp, toStringVal) { return this.date.getTime() - this.offsetDiff; }; - this.toString = function() { - return toStringVal; - }; - this.toLocaleDateString = function() { return this.date.toLocaleDateString(); }; @@ -537,8 +533,6 @@ function TzDate(offset, timestamp, toStringVal) { 'toLocaleTimeString', 'toSource', 'toString', 'toTimeString', 'toUTCString', 'valueOf']; angular.forEach(unimplementedMethods, function(methodName) { - if (methodName == 'toString' && toStringVal) return; - self[methodName] = function() { throw { name: "MethodNotImplemented", diff --git a/src/filters.js b/src/filters.js index b3d4c437..f636b242 100644 --- a/src/filters.js +++ b/src/filters.js @@ -215,16 +215,10 @@ function dateStrGetter(name, shortForm) { }; } -function timeZoneGetter(numFormat) { - return function(date) { - var timeZone; - if (numFormat || !(timeZone = GET_TIME_ZONE.exec(date.toString()))) { - var offset = date.getTimezoneOffset(); - return padNumber(offset / 60, 2) + padNumber(Math.abs(offset % 60), 2); - } - return timeZone[0]; - }; -} +function timeZoneGetter(date) { + var offset = date.getTimezoneOffset(); + return padNumber(offset / 60, 2) + padNumber(Math.abs(offset % 60), 2); +}; function ampmGetter(date, formats) { return date.getHours() < 12 ? formats.AMPMS[0] : formats.AMPMS[1]; @@ -251,8 +245,7 @@ var DATE_FORMATS = { EEEE: dateStrGetter('Day'), EEE: dateStrGetter('Day', true), a: ampmGetter, - z: timeZoneGetter(false), - Z: timeZoneGetter(true) + Z: timeZoneGetter }; var GET_TIME_ZONE = /[A-Z]{3}(?![+\-])/; @@ -293,13 +286,10 @@ var NUMBER_STRING = /^\d+$/; * * `'s'`: Second in minute (0-59) * * `'a'`: am/pm marker * * `'Z'`: 4 digit (+sign) representation of the timezone offset (-1200-1200) - * * `'z'`: short form of current timezone name (e.g. PDT) * * `format` string can also be one of the following predefined * {@link guide/dev_guide.i18n localizable formats}: * - * * `'long'`: equivalent to `'MMMM d, y h:mm:ss a z'` for en_US locale - * (e.g. September 3, 2010 12:05:08 pm PDT) * * `'medium'`: equivalent to `'MMM d, y h:mm:ss a'` for en_US locale * (e.g. Sep 3, 2010 12:05:08 pm) * * `'short'`: equivalent to `'M/d/yy h:mm a'` for en_US locale (e.g. 9/3/10 12:05 pm) @@ -308,7 +298,6 @@ var NUMBER_STRING = /^\d+$/; * * `'longDate'`: equivalent to `'MMMM d, y'` for en_US locale (e.g. September 3, 2010 * * `'mediumDate'`: equivalent to `'MMM d, y'` for en_US locale (e.g. Sep 3, 2010) * * `'shortDate'`: equivalent to `'M/d/yy'` for en_US locale (e.g. 9/3/10) - * * `'longTime'`: equivalent to `'h:mm:ss a z'` for en_US locale (e.g. 12:05:08 pm PDT) * * `'mediumTime'`: equivalent to `'h:mm:ss a'` for en_US locale (e.g. 12:05:08 pm) * * `'shortTime'`: equivalent to `'h:mm a'` for en_US locale (e.g. 12:05 pm) * diff --git a/src/service/locale.js b/src/service/locale.js index 0e8c3b42..e94c2100 100644 --- a/src/service/locale.js +++ b/src/service/locale.js @@ -50,14 +50,12 @@ angularServiceInject('$locale', function() { DAY: 'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday'.split(','), SHORTDAY: 'Sun,Mon,Tue,Wed,Thu,Fri,Sat'.split(','), AMPMS: ['AM','PM'], - long: 'MMMM d, y h:mm:ss a z', medium: 'MMM d, y h:mm:ss a', short: 'M/d/yy h:mm a', fullDate: 'EEEE, MMMM d, y', longDate: 'MMMM d, y', mediumDate: 'MMM d, y', shortDate: 'M/d/yy', - longTime: 'h:mm:ss a z', mediumTime: 'h:mm:ss a', shortTime: 'h:mm a' } diff --git a/test/FiltersSpec.js b/test/FiltersSpec.js index a09ef481..2673b36e 100644 --- a/test/FiltersSpec.js +++ b/test/FiltersSpec.js @@ -195,8 +195,6 @@ describe('filter', function() { var noon = new TzDate(+5, '2010-09-03T17:05:08.000Z'); //12pm var midnight = new TzDate(+5, '2010-09-03T05:05:08.000Z'); //12am var earlyDate = new TzDate(+5, '0001-09-03T05:05:08.000Z'); - var timZoneDate = new TzDate(+5, '2010-09-03T05:05:08.000Z', - 'Mon Sep 3 2010 00:05:08 GMT+0500 (XYZ)'); //12am var context, date; @@ -225,16 +223,13 @@ describe('filter', function() { toEqual('10-09-03 07:05:08'); expect(date(midnight, "yyyy-M-d h=H:m:saZ")). - toEqual('2010-9-3 12=0:5:8am0500'); + toEqual('2010-9-3 12=0:5:8AM0500'); expect(date(midnight, "yyyy-MM-dd hh=HH:mm:ssaZ")). - toEqual('2010-09-03 12=00:05:08am0500'); + toEqual('2010-09-03 12=00:05:08AM0500'); expect(date(noon, "yyyy-MM-dd hh=HH:mm:ssaZ")). - toEqual('2010-09-03 12=12:05:08pm0500'); - - expect(date(timZoneDate, "yyyy-MM-dd hh=HH:mm:ss a z")). - toEqual('2010-09-03 12=00:05:08 am XYZ'); + toEqual('2010-09-03 12=12:05:08PM0500'); expect(date(noon, "EEE, MMM d, yyyy")). toEqual('Fri, Sep 3, 2010'); @@ -258,14 +253,11 @@ describe('filter', function() { it('should accept default formats', function() { - expect(date(timZoneDate, "long")). - toEqual('September 3, 2010 12:05:08 am XYZ'); - expect(date(noon, "medium")). - toEqual('Sep 3, 2010 12:05:08 pm'); + toEqual('Sep 3, 2010 12:05:08 PM'); expect(date(noon, "short")). - toEqual('9/3/10 12:05 pm'); + toEqual('9/3/10 12:05 PM'); expect(date(noon, "fullDate")). toEqual('Friday, September 3, 2010'); @@ -279,32 +271,13 @@ describe('filter', function() { expect(date(noon, "shortDate")). toEqual('9/3/10'); - expect(date(timZoneDate, "longTime")). - toEqual('12:05:08 am XYZ'); - expect(date(noon, "mediumTime")). - toEqual('12:05:08 pm'); + toEqual('12:05:08 PM'); expect(date(noon, "shortTime")). - toEqual('12:05 pm'); + toEqual('12:05 PM'); }); - - it('should parse timezone identifier from various toString values', function() { - //chrome and firefox format - expect(date(new TzDate(+5, '2010-09-03T17:05:08.000Z', - 'Mon Sep 3 2010 17:05:08 GMT+0500 (XYZ)'), "z")).toBe('XYZ'); - - //opera format - expect(date(new TzDate(+5, '2010-09-03T17:05:08.000Z', - '2010-09-03T17:05:08Z'), "z")).toBe('0500'); - - //ie 8 format - expect(date(new TzDate(+5, '2010-09-03T17:05:08.000Z', - 'Mon Sep 3 17:05:08 XYZ 2010'), "z")).toBe('XYZ'); - }); - - it('should be able to parse ISO 8601 dates/times using', function() { var isoString = '2010-09-03T05:05:08.872Z'; expect(date(isoString)). diff --git a/test/angular-mocksSpec.js b/test/angular-mocksSpec.js index f24f6e57..bf5c7816 100644 --- a/test/angular-mocksSpec.js +++ b/test/angular-mocksSpec.js @@ -123,12 +123,6 @@ describe('mocks', function(){ }); - it('should fake toString method when a third param is passed in', function() { - var t = new TzDate(0, 0, 'Mon Sep 3 2010 17:05:08 GMT+0500 (XYZ)'); - expect(t.toString()).toBe('Mon Sep 3 2010 17:05:08 GMT+0500 (XYZ)'); - }); - - it('should throw error when no third param but toString called', function() { expect(function() { new TzDate(0,0).toString(); }). toThrow('Method \'toString\' is not implemented in the TzDate mock'); |
