2186
2187
str = gst_structure_to_string (s);
2187
2188
gst_structure_free (s);
2189
fail_unless (g_str_equal (str,
2190
"media/x-type, SOME_DATE_TIME_TAG=(datetime)\"2010-06-23T07:40:10.000001+0200\";"));
2190
fail_unless_equals_string (str,
2191
"media/x-type, SOME_DATE_TIME_TAG=(datetime)2010-06-23T07:40:10.000001+0200;");
2196
/* test partial dates */
2197
datetime = gst_date_time_new (0.0, 2010, -1, -1, -1, -1, -1.0);
2198
g_value_init (&val, GST_TYPE_DATE_TIME);
2199
g_value_take_boxed (&val, datetime);
2200
str = gst_value_serialize (&val);
2201
g_value_reset (&val);
2202
fail_unless_equals_string (str, "2010");
2203
fail_unless (gst_value_deserialize (&val, str));
2204
datetime = g_value_get_boxed (&val);
2205
fail_if (!gst_date_time_has_year (datetime));
2206
fail_if (gst_date_time_has_month (datetime));
2207
fail_if (gst_date_time_has_day (datetime));
2208
fail_if (gst_date_time_has_time (datetime));
2209
g_value_unset (&val);
2212
datetime = gst_date_time_new (0.0, 2010, 9, -1, -1, -1, -1.0);
2213
g_value_init (&val, GST_TYPE_DATE_TIME);
2214
g_value_take_boxed (&val, datetime);
2215
str = gst_value_serialize (&val);
2216
g_value_reset (&val);
2217
fail_unless_equals_string (str, "2010-09");
2218
fail_unless (gst_value_deserialize (&val, str));
2219
datetime = g_value_get_boxed (&val);
2220
fail_if (!gst_date_time_has_year (datetime));
2221
fail_if (!gst_date_time_has_month (datetime));
2222
fail_if (gst_date_time_has_day (datetime));
2223
fail_if (gst_date_time_has_time (datetime));
2224
g_value_unset (&val);
2227
datetime = gst_date_time_new (0.0, 1983, 11, 30, -1, -1, -1.0);
2228
g_value_init (&val, GST_TYPE_DATE_TIME);
2229
g_value_take_boxed (&val, datetime);
2230
str = gst_value_serialize (&val);
2231
g_value_reset (&val);
2232
fail_unless_equals_string (str, "1983-11-30");
2233
fail_unless (gst_value_deserialize (&val, str));
2234
datetime = g_value_get_boxed (&val);
2235
fail_if (!gst_date_time_has_year (datetime));
2236
fail_if (!gst_date_time_has_month (datetime));
2237
fail_if (!gst_date_time_has_day (datetime));
2238
fail_if (gst_date_time_has_time (datetime));
2239
g_value_unset (&val);
2242
datetime = gst_date_time_new (0.0, 1983, 11, 30, 3, 52, -1.0);
2243
g_value_init (&val, GST_TYPE_DATE_TIME);
2244
g_value_take_boxed (&val, datetime);
2245
str = gst_value_serialize (&val);
2246
g_value_reset (&val);
2247
fail_unless_equals_string (str, "1983-11-30T03:52Z");
2248
fail_unless (gst_value_deserialize (&val, str));
2249
datetime = g_value_get_boxed (&val);
2250
fail_if (!gst_date_time_has_year (datetime));
2251
fail_if (!gst_date_time_has_month (datetime));
2252
fail_if (!gst_date_time_has_day (datetime));
2253
fail_if (!gst_date_time_has_time (datetime));
2254
fail_if (gst_date_time_has_second (datetime));
2255
fail_unless_equals_float (gst_date_time_get_time_zone_offset (datetime), 0.0);
2256
g_value_unset (&val);
2259
datetime = gst_date_time_new (-4.5, 1983, 11, 30, 3, 52, -1.0);
2260
g_value_init (&val, GST_TYPE_DATE_TIME);
2261
g_value_take_boxed (&val, datetime);
2262
str = gst_value_serialize (&val);
2263
g_value_reset (&val);
2264
fail_unless_equals_string (str, "1983-11-30T03:52-0430");
2265
fail_unless (gst_value_deserialize (&val, str));
2266
datetime = g_value_get_boxed (&val);
2267
fail_if (!gst_date_time_has_year (datetime));
2268
fail_if (!gst_date_time_has_month (datetime));
2269
fail_if (!gst_date_time_has_day (datetime));
2270
fail_if (!gst_date_time_has_time (datetime));
2271
fail_if (gst_date_time_has_second (datetime));
2272
fail_unless_equals_float (gst_date_time_get_time_zone_offset (datetime),
2274
g_value_unset (&val);
2277
datetime = gst_date_time_new (4.5, 1983, 11, 30, 14, 52, 9);
2278
g_value_init (&val, GST_TYPE_DATE_TIME);
2279
g_value_take_boxed (&val, datetime);
2280
str = gst_value_serialize (&val);
2281
g_value_reset (&val);
2282
fail_unless_equals_string (str, "1983-11-30T14:52:09+0430");
2283
fail_unless (gst_value_deserialize (&val, str));
2284
datetime = g_value_get_boxed (&val);
2285
fail_if (!gst_date_time_has_year (datetime));
2286
fail_if (!gst_date_time_has_month (datetime));
2287
fail_if (!gst_date_time_has_day (datetime));
2288
fail_if (!gst_date_time_has_time (datetime));
2289
fail_if (!gst_date_time_has_second (datetime));
2290
fail_unless_equals_float (gst_date_time_get_time_zone_offset (datetime), 4.5);
2291
g_value_unset (&val);
2294
datetime = gst_date_time_new (-4.5, 1983, 11, 30, 14, 52, 9.702);
2295
g_value_init (&val, GST_TYPE_DATE_TIME);
2296
g_value_take_boxed (&val, datetime);
2297
str = gst_value_serialize (&val);
2298
g_value_reset (&val);
2299
fail_unless_equals_string (str, "1983-11-30T14:52:09.702-0430");
2300
fail_unless (gst_value_deserialize (&val, str));
2301
datetime = g_value_get_boxed (&val);
2302
fail_if (!gst_date_time_has_year (datetime));
2303
fail_if (!gst_date_time_has_month (datetime));
2304
fail_if (!gst_date_time_has_day (datetime));
2305
fail_if (!gst_date_time_has_time (datetime));
2306
fail_if (!gst_date_time_has_second (datetime));
2307
fail_unless_equals_float (gst_date_time_get_time_zone_offset (datetime),
2309
g_value_unset (&val);