1e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <string>
2e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (STLPORT) || !defined (_STLP_USE_NO_IOSTREAMS)
3e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  include <iosfwd>
4e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
5e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  include "cppunit/cppunit_proxy.h"
6e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  include <locale>
7e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
8e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottstruct ref_monetary;
9e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottstruct ref_locale;
10e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
11e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if !defined (STLPORT) || defined (_STLP_USE_NAMESPACES)
12e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    define STD std::
13e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  else
14e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    define STD
15e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
16e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
17e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//
18e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// TestCase class
19e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott//
20e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottclass LocaleTest : public CPPUNIT_NS::TestCase
21e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott{
22e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST_SUITE(LocaleTest);
23e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if defined (STLPORT) && !defined (_STLP_USE_EXCEPTIONS)
24e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_IGNORE;
25e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
26e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(locale_by_name);
27e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(moneypunct_by_name);
28e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(time_by_name);
29e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(numpunct_by_name);
30e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(ctype_by_name);
31e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(collate_by_name);
32e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(messages_by_name);
33e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_STOP_IGNORE;
34e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(loc_has_facet);
35e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(num_put_get);
36e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(money_put_get);
37e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(money_put_X_bug);
38e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(time_put_get);
39e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(collate_facet);
40e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(ctype_facet);
41e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if defined (STLPORT) && defined (_STLP_NO_MEMBER_TEMPLATES)
42e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_IGNORE;
43e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
44e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(locale_init_problem);
45e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_STOP_IGNORE;
46e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(default_locale);
47e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  if !defined (STLPORT)
48e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_IGNORE;
49e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
50e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_STOP_IGNORE;
51e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if (defined (STLPORT) && \
52e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott   (!defined (_STLP_USE_EXCEPTIONS) || defined (_STLP_NO_MEMBER_TEMPLATES) || defined (_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS)))
53e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_IGNORE;
54e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  endif
55e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST(combine);
56e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  CPPUNIT_TEST_SUITE_END();
57e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
58e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottpublic:
59e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void locale_by_name();
60e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void loc_has_facet();
61e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void num_put_get();
62e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void numpunct_by_name();
63e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void time_put_get();
64e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void time_by_name();
65e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void collate_facet();
66e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void collate_by_name();
67e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void ctype_facet();
68e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void ctype_by_name();
69e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void locale_init_problem();
70e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void money_put_get();
71e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void money_put_X_bug();
72e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void moneypunct_by_name();
73e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void default_locale();
74e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void combine();
75e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void messages_by_name();
76e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottprivate:
77e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void _loc_has_facet( const STD locale& );
78e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void _num_put_get( const STD locale&, const ref_locale* );
79e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void _time_put_get( const STD locale& );
80e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void _ctype_facet( const STD locale& );
81e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void _ctype_facet_w( const STD locale& );
82e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void _locale_init_problem( const STD locale& );
83e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
84e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  static const ref_monetary* _get_ref_monetary(size_t);
85e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  static const char* _get_ref_monetary_name(const ref_monetary*);
86e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
87e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void _money_put_get( const STD locale&, const ref_monetary* );
88e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void _money_put_get2( const STD locale& loc, const STD locale& streamLoc, const ref_monetary* );
89e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott  void _money_put_X_bug( const STD locale&, const ref_monetary* );
90e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott};
91e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
92e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  undef STD
93e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif
94e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
95