END_TEST

/**
 * Purpose: test getting year when a value over the limits was set for
 * hildon_date_editor_get_year
 * Cases considered:
 *    - test year 2037
 *    - test year 1970
 */
START_TEST (test_get_year_limits)
{
  guint year;

  year = 1981;

  /* Set init year */
  hildon_date_editor_set_year (date_editor, year);

  /* Test 1: upper limit */
  hildon_date_editor_set_year (date_editor, MAX_YEAR);

  fail_if (hildon_date_editor_get_year (date_editor) != MAX_YEAR,
	   "hildon-date-editor: The returned year is %u and should be %u", 
	   hildon_date_editor_get_year (date_editor), MAX_YEAR);

  /* Test 2: lower limit */
  hildon_date_editor_set_year (date_editor, MIN_YEAR);

  fail_if (hildon_date_editor_get_year (date_editor) != MIN_YEAR,
	   "hildon-date-editor: The returned year is %u and should be %u", 
	   hildon_date_editor_get_year (date_editor), MIN_YEAR);
}
END_TEST

/* ----- Test case for set_year -----*/

/**
 * Purpose: test setting a regular value for a year for
 * hildon_date_editor_set_year
 * Cases considered:
 *    - Set year 1981
 */
START_TEST (test_set_year_regular)
{
  guint year;
  guint ret_year;

  year = 1981;

  /* Test 1: Try year 1981 */
  hildon_date_editor_set_year (date_editor, year);
  ret_year = hildon_date_editor_get_year (date_editor);

  fail_if (ret_year != year,
	   "hildon-date-editor: set_year failed. The returned year is %u and should be %u", 
	   ret_year, year);
}
END_TEST

/**
 * Purpose: test getting a year for invalid attributes for
 * hildon_date_editor_get_year
 * Cases considered: 
 *    - HildonDateEditor is NULL
 *    - Pass a GtkHBox instead a HildonDateEditor
 *    - test year 2038
 *    - test year 1969
 */
START_TEST (test_get_year_invalid)
{
  guint ret_year;
  GtkWidget *aux_object = NULL;

  /* Test 1: Test NULL */
  ret_year = hildon_date_editor_get_year (NULL);
  fail_if (ret_year != 0,
	   "hildon-date-editor: get_year failed. The returned year is %u and should be %u", 
	   ret_year, 0);

  /* Test 2: another object */
  aux_object = gtk_hbox_new (TRUE, 0);
  ret_year = hildon_date_editor_get_year ((HildonDateEditor *) (aux_object));
  fail_if (ret_year != 0,
	   "hildon-date-editor: get_year failed. The returned year is %u and should be %u", 
	   ret_year, 0);
  gtk_widget_destroy (GTK_WIDGET(aux_object));

  /* Test 3: upper limit, the test is OK but it shouldn't. The reason
     is that the value of the date is not validated by Hildon since it
     was not set using the UI */
  hildon_date_editor_set_year (date_editor, MAX_YEAR + 1);

  fail_if (hildon_date_editor_get_year (date_editor) != MAX_YEAR + 1,
	   "hildon-date-editor: The returned year is %u and should be %u", 
	   hildon_date_editor_get_year (date_editor), MAX_YEAR + 1);

  /* Test 4: lower limit, see the above comment */
  hildon_date_editor_set_year (date_editor, MIN_YEAR - 1);

  fail_if (hildon_date_editor_get_year (date_editor) != MIN_YEAR - 1,
	   "hildon-date-editor: The returned year is %u and should be %u", 
	   hildon_date_editor_get_year (date_editor), MIN_YEAR - 1);
}
END_TEST

/**
 * Purpose: test setting values of the year over the limits for
 * hildon_date_editor_set_year
 * Cases considered:
 *    - Set year 2037
 *    - Set year 1970
 */
START_TEST (test_set_year_limits)
{
  guint year;
  GValue value = { 0, };

  year = 1981;

  /* Set init date */
  hildon_date_editor_set_year (date_editor, year);

  /* Test 1: Test upper limit */
  g_value_init (&value, G_TYPE_UINT);
  hildon_date_editor_set_year (date_editor, MAX_YEAR);
  g_object_get_property (G_OBJECT (date_editor), "year", &value);
  fail_if (g_value_get_uint (&value) != MAX_YEAR,
	   "hildon-date-editor: The returned year is %u and should be %u",
	   g_value_get_uint (&value), year);

  /* Test 2: Test lower limit */
  g_value_unset (&value);
  g_value_init (&value, G_TYPE_UINT);
  hildon_date_editor_set_year (date_editor, MIN_YEAR);
  g_object_get_property (G_OBJECT (date_editor), "year", &value);
  fail_if (g_value_get_uint (&value) != MIN_YEAR,
	   "hildon-date-editor: The returned year is %u and should be %u",
	   g_value_get_uint (&value), MIN_YEAR);
}
END_TEST

/* ----- Test case for get_year -----*/

/**
 * Purpose: test getting regular values of the year for hildon_date_editor_get_year
 * Cases considered:
 *    - get a year set with set_date 30/03/1981
 *    - get a year set with set_year 1980
 *    - get a year set with set_property 2004
 */
START_TEST (test_get_year_regular)
{
  guint year, month, day;
  GValue value = {0, };

  year = 1981;
  month = 3;
  day = 30;

  /* Test 1: Set year with set_date */
  hildon_date_editor_set_date (date_editor, year, month, day);

  fail_if (hildon_date_editor_get_year (date_editor) != year,
	   "hildon-date-editor: get_year failed. The returned year is %u and should be %u", 
	   hildon_date_editor_get_year (date_editor), year);

  /* Test 2: set year with set_year */
  year = 1980;
  hildon_date_editor_set_year (date_editor, year);

  fail_if (hildon_date_editor_get_year (date_editor) != year,
	   "hildon-date-editor: get_year failed. The returned year is %u and should be %u", 
	   hildon_date_editor_get_year (date_editor), year);

  /* Test 3: set year with set_property */
  year = 2004;
  g_value_init (&value, G_TYPE_UINT);
  g_value_set_uint (&value, year);
  g_object_set_property (G_OBJECT (date_editor), "year", &value);

  fail_if (hildon_date_editor_get_year (date_editor) != year,
	   "hildon-date-editor: get_year failed. The returned year is %u and should be %u", 
	   hildon_date_editor_get_year (date_editor), year);
}
Esempio n. 6
0
void
dates_details_time_cb (DatesData *d, ECalComponentDateTime *time)
{
#ifndef WITH_HILDON
    gint i, hour, minute;
    gchar buffer[33];
    GtkCalendar *calendar;
	
    calendar = GTK_CALENDAR (d->time_calendar);
	
    /* Set time widgets */	
    gtk_calendar_select_month (calendar, time->value->month - 1,
			       time->value->year);
    gtk_calendar_select_day (calendar, time->value->day);

    g_snprintf (buffer, 33, "%d", time->value->hour);
    gtk_entry_set_text (GTK_ENTRY (d->hour_entry), buffer);
    i = time->value->minute / 10;
    g_snprintf (buffer, 33, "%d", i);
    gtk_entry_set_text (GTK_ENTRY (d->lminute_entry), buffer);
    i = time->value->minute - (i * 10);
    g_snprintf (buffer, 33, "%d", i);
    gtk_entry_set_text (GTK_ENTRY (d->rminute_entry), buffer);
    gtk_widget_show (d->time_table);
#else
    HildonDateEditor *date_edit = HILDON_DATE_EDITOR (d->time_date_editor);
    HildonTimeEditor *time_edit = HILDON_TIME_EDITOR (d->time_time_editor);
	
    /* Set date */
    hildon_date_editor_set_year (date_edit, time->value->year);
    hildon_date_editor_set_month (date_edit, time->value->month);
    hildon_date_editor_set_day (date_edit, time->value->day);
	
    /* Set time */
    hildon_time_editor_set_time (time_edit, time->value->hour,
				 time->value->minute, 0);
    hildon_time_editor_set_show_seconds (time_edit, FALSE);
#endif
	
    gtk_widget_hide (d->time_forever_checkbutton);

    /* Run dialog */
	dates_platform_time_dlg (d, TRUE);
	
    /* Retrieve time */
#ifndef WITH_HILDON
    gtk_calendar_get_date (calendar,
			   (guint *)(&time->value->year),
			   (guint *)(&time->value->month),
			   (guint *)(&time->value->day));
    time->value->month += 1;
	
    hour = atoi (gtk_entry_get_text (GTK_ENTRY (d->hour_entry)));
    if ((hour >= 0) && (hour <= 23))
	time->value->hour = hour;
    minute = (atoi (gtk_entry_get_text (GTK_ENTRY (d->lminute_entry))) * 10) +
	atoi (gtk_entry_get_text (GTK_ENTRY (d->rminute_entry)));
    if ((minute >= 0) && (minute <= 59))
	time->value->minute = minute;
#else
    time->value->year = hildon_date_editor_get_year (date_edit);
    time->value->month = hildon_date_editor_get_month (date_edit);
    time->value->day = hildon_date_editor_get_day (date_edit);
	
    hildon_time_editor_get_time (time_edit,
				 (guint *)(&time->value->hour),
				 (guint *)(&time->value->minute),
				 (guint *)(&time->value->second));
#endif
}