(root)/
gettext-0.22.4/
libtextstyle/
tests/
test-accessors.c
       1  /* Test for the various accessor functions.  */
       2  
       3  #include <config.h>
       4  
       5  #include "textstyle.h"
       6  
       7  #include <stdio.h>
       8  #include <stdlib.h>
       9  #include <string.h>
      10  
      11  #define ASSERT(x) if (!(x)) abort ()
      12  
      13  int
      14  main ()
      15  {
      16    {
      17      ostream_t stream = file_ostream_create (stdout);
      18  
      19      ASSERT (file_ostream_get_stdio_stream (stream) == stdout);
      20  
      21      ostream_free (stream);
      22    }
      23    {
      24      ostream_t stream = fd_ostream_create (1, "(stdout)", false);
      25  
      26      ASSERT (fd_ostream_get_descriptor (stream) == 1);
      27      ASSERT (strcmp (fd_ostream_get_filename (stream), "(stdout)") == 0);
      28      ASSERT (! fd_ostream_is_buffered (stream));
      29  
      30      ostream_free (stream);
      31    }
      32    {
      33      ostream_t stream = term_ostream_create (1, "(stdout)", TTYCTL_AUTO);
      34  
      35      ASSERT (term_ostream_get_descriptor (stream) == 1);
      36      ASSERT (strcmp (term_ostream_get_filename (stream), "(stdout)") == 0);
      37      ASSERT (term_ostream_get_tty_control (stream) == TTYCTL_AUTO);
      38      ASSERT (term_ostream_get_effective_tty_control (stream) == TTYCTL_FULL);
      39  
      40      ostream_free (stream);
      41    }
      42  #if LIBTEXTSTYLE_USES_ICONV
      43    {
      44      ostream_t stream1 = file_ostream_create (stdout);
      45      ostream_t stream = iconv_ostream_create ("ISO-8859-1", "UTF-8", stream1);
      46      ASSERT (strcmp (iconv_ostream_get_from_encoding (stream), "ISO-8859-1") == 0);
      47      ASSERT (strcmp (iconv_ostream_get_to_encoding (stream), "UTF-8") == 0);
      48      ASSERT (iconv_ostream_get_destination (stream) == stream1);
      49  
      50      ostream_free (stream);
      51      ostream_free (stream1);
      52    }
      53  #endif
      54    {
      55      ostream_t stream1 = file_ostream_create (stdout);
      56      ostream_t stream = html_ostream_create (stream1);
      57  
      58      ASSERT (html_ostream_get_destination (stream) == stream1);
      59  
      60      ostream_free (stream);
      61      ostream_free (stream1);
      62    }
      63    {
      64      ostream_t stream =
      65        term_styled_ostream_create (1, "(stdout)", TTYCTL_AUTO,
      66                                    SRCDIR "../adhoc-tests/hello-default.css");
      67  
      68      ASSERT (is_instance_of_term_ostream (term_styled_ostream_get_destination (stream)));
      69      ASSERT (strcmp (term_styled_ostream_get_css_filename (stream),
      70                      SRCDIR "../adhoc-tests/hello-default.css") == 0);
      71  
      72      ostream_free (stream);
      73    }
      74    {
      75      ostream_t stream1 = file_ostream_create (stdout);
      76      ostream_t stream =
      77        html_styled_ostream_create (stream1,
      78                                    SRCDIR "../adhoc-tests/hello-default.css");
      79  
      80      ASSERT (html_styled_ostream_get_destination (stream) == stream1);
      81      ASSERT (is_instance_of_html_ostream (html_styled_ostream_get_html_destination (stream)));
      82      ASSERT (strcmp (html_styled_ostream_get_css_filename (stream),
      83                      SRCDIR "../adhoc-tests/hello-default.css") == 0);
      84  
      85      ostream_free (stream);
      86      ostream_free (stream1);
      87    }
      88    {
      89      ostream_t stream1 = file_ostream_create (stdout);
      90      ostream_t stream = noop_styled_ostream_create (stream1, false);
      91  
      92      ASSERT (noop_styled_ostream_get_destination (stream) == stream1);
      93      ASSERT (!noop_styled_ostream_is_owning_destination (stream));
      94  
      95      ostream_free (stream);
      96      ostream_free (stream1);
      97    }
      98  
      99    return 0;
     100  }