@@ -36,6 +36,19 @@ define( [
36
36
getConstructorArguments : function ( ) {
37
37
return [
38
38
[ '+0000000000001942-04-01T00:00:00Z' ] ,
39
+
40
+ // Optional parts
41
+ [ '+0000000000001942-04-01T00:00:00' ] ,
42
+ [ '+0000000000001942-04-01T00:00' ] ,
43
+ [ '+0000000000001942-04-01T' ] ,
44
+ [ '0000000000001942-04-01T' ] ,
45
+ [ '1942-04-01T' ] ,
46
+
47
+ // Minimal and maximal length
48
+ [ '+1-1-1T1:1:1Z' ] ,
49
+ [ '+9999999999999999-12-31T23:59:59Z' ] ,
50
+
51
+ // Options
39
52
[ '+0000000000001400-01-01T00:00:00Z' , {
40
53
calendarModel : 'http://www.wikidata.org/entity/Q1985786'
41
54
} ] ,
@@ -45,6 +58,44 @@ define( [
45
58
] ;
46
59
} ,
47
60
61
+ /**
62
+ * Tests if the constructor fails as expected for invalid and unsupported timestamp values.
63
+ *
64
+ * @since 0.7
65
+ *
66
+ * @param {QUnit } assert
67
+ */
68
+ testGivenInvalidTimestamp_ConstructorThrowsException : function ( assert ) {
69
+ var invalidTimestamps = [
70
+ // Non-strings
71
+ undefined ,
72
+ null ,
73
+ 1 ,
74
+ 0.1 ,
75
+
76
+ // The "T" is required
77
+ '' ,
78
+ '1942-04-01' ,
79
+ '+0000000000002015-01-01 01:01:01Z' ,
80
+
81
+ // Unsupported time zones
82
+ '+0000000000002015-01-01T01:01:01A' ,
83
+ '+0000000000002015-01-01T01:01:01+0000' ,
84
+ '+0000000000002015-01-01T01:01:01+00:00'
85
+ ] ;
86
+
87
+ for ( var i = 0 ; i < invalidTimestamps . length ; i ++ ) {
88
+ var invalidTimestamp = invalidTimestamps [ i ] ;
89
+
90
+ assert . throws (
91
+ function ( ) {
92
+ new dv . TimeValue ( invalidTimestamp ) ;
93
+ } ,
94
+ '"' + invalidTimestamp + '" is not a valid TimeValue timestamp'
95
+ ) ;
96
+ }
97
+ } ,
98
+
48
99
/**
49
100
* Tests if the equals method is able to return false.
50
101
*
0 commit comments