Exemplo n.º 1
0
bool TestExtDatetime::test_strftime() {
  int ts = f_mktime(0, 0, 0, 8, 5, 1998);

  f_setlocale(2, k_LC_TIME, "C");
  VS(f_strftime("%A", ts), "Wednesday");

  if (f_setlocale(2, k_LC_TIME, "fi_FI")) {
    VS(f_strftime(" in Finnish is %A,", ts), " in Finnish is keskiviikko,");
  } else {
    SKIP("setlocale() failed");
  }

  if (f_setlocale(2, k_LC_TIME, "fr_FR")) {
    VS(f_strftime(" in French %A and", ts), " in French mercredi and");
  } else {
    SKIP("setlocale() failed");
  }

  if (f_setlocale(2, k_LC_TIME, "de_DE")) {
    VS(f_strftime(" in German %A.", ts), " in German Mittwoch.");
  } else {
    SKIP("setlocale() failed");
  }

  f_setlocale(2, k_LC_TIME, "C");

/*
  December 2002 / January 2003
  ISOWk  M   Tu  W   Thu F   Sa  Su
  ----- ----------------------------
  51     16  17  18  19  20  21  22
  52     23  24  25  26  27  28  29
  1      30  31   1   2   3   4   5
  2       6   7   8   9  10  11  12
  3      13  14  15  16  17  18  19
*/
  VS(f_strftime("%V,%G,%Y", f_strtotime("12/28/2002")), "52,2002,2002");
  VS(f_strftime("%V,%G,%Y", f_strtotime("12/30/2002")), "01,2003,2002");
  VS(f_strftime("%V,%G,%Y", f_strtotime("1/3/2003")),   "01,2003,2003");
  VS(f_strftime("%V,%G,%Y", f_strtotime("1/10/2003")),  "02,2003,2003");

/*
  December 2004 / January 2005
  ISOWk  M   Tu  W   Thu F   Sa  Su
  ----- ----------------------------
  51     13  14  15  16  17  18  19
  52     20  21  22  23  24  25  26
  53     27  28  29  30  31   1   2
  1       3   4   5   6   7   8   9
  2      10  11  12  13  14  15  16
*/
  VS(f_strftime("%V,%G,%Y", f_strtotime("12/23/2004")), "52,2004,2004");
  VS(f_strftime("%V,%G,%Y", f_strtotime("12/31/2004")), "53,2004,2004");
  VS(f_strftime("%V,%G,%Y", f_strtotime("1/2/2005")),   "53,2004,2005");
  VS(f_strftime("%V,%G,%Y", f_strtotime("1/3/2005")),   "01,2005,2005");

  return Count(true);
}
bool TestExtVariable::test_var_export() {
  {
    Variant v = CREATE_MAP3("a","apple","b",2,"c",CREATE_VECTOR3(1,"y",3));
    VS(f_var_export(v, true),
       "array (\n"
       "  'a' => 'apple',\n"
       "  'b' => 2,\n"
       "  'c' => \n"
       "  array (\n"
       "    0 => 1,\n"
       "    1 => 'y',\n"
       "    2 => 3,\n"
       "  ),\n"
       ")");
  }
  {
    String current_locale = f_setlocale(2, k_LC_ALL, "0");
    if (f_setlocale(2, k_LC_ALL, CREATE_VECTOR5("de","de_DE","de_DE.ISO8859-1","de_DE.ISO_8859-1","de_DE.UTF-8"))) {
      Variant v = CREATE_MAP3("a", -1, "b", 10.5, "c", 5.6);
      VS(f_var_export(v, true),
         "array (\n"
         "  'a' => -1,\n"
         "  'b' => 10.5,\n"
         "  'c' => 5.6,\n"
         ")");
      f_setlocale(2, k_LC_ALL, current_locale);
    } else {
      SKIP("setlocale() failed");
    }
  }
  {
    const char cs[] = "'\0\\";
    const char cr[] = "'\\'' . \"\\0\" . '\\\\'";
    String s(cs, sizeof(cs) - 1, CopyString);
    String r(cr, sizeof(cr) - 1, CopyString);
    VS(f_var_export(s, true), cr);
  }
  {
    Variant v = CREATE_MAP3(String("\0", 1, CopyString), "null",
                            "", "empty",
                            "0", "nul");
    VS(f_var_export(v, true),
       "array (\n"
       "  '' . \"\\0\" . '' => 'null',\n"
       "  '' => 'empty',\n"
       "  0 => 'nul',\n"
       ")");
  }
  return Count(true);
}
Exemplo n.º 3
0
bool TestExtDatetime::test_gmstrftime() {
  f_setlocale(2, k_LC_TIME, "en_US.utf8");
  int d = f_mktime(20, 0, 0, 12, 31, 98);
  VS(f_strftime("%b %d %Y %H:%M:%S", d),   "Dec 31 1998 20:00:00");
  VS(f_gmstrftime("%b %d %Y %H:%M:%S", d), "Jan 01 1999 04:00:00");
  int t = f_mktime(0,0,0, 6, 27, 2006);
  VS(f_strftime("%a %A %b %B %c %C %d %D %e %g %G %h %H %I %j %m %M %n %p "
                "%r %R %S %t %T %u %U %V %W %w %x %X %y %Y %Z %z %%", t),
                "Tue Tuesday Jun June Tue 27 Jun 2006 12:00:00 AM PDT 20 27 "
                "06/27/06 27 06 2006 Jun 00 12 178 06 00 \n AM 12:00:00 AM "
                "00:00 00 \t 00:00:00 2 26 26 26 2 06/27/2006 12:00:00 AM "
                "06 2006 PDT -0700 %");
  return Count(true);
}
Exemplo n.º 4
0
bool TestExtString::test_setlocale() {
  VERIFY(!f_setlocale(0, k_LC_ALL, 0).toString().empty());
  return Count(true);
}