/[suikacvs]/messaging/manakai/t/DOM-Document.t
Suika

Diff of /messaging/manakai/t/DOM-Document.t

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by wakaba, Fri Jun 15 14:32:50 2007 UTC revision 1.3 by wakaba, Sat Jun 23 12:47:13 2007 UTC
# Line 1  Line 1 
1  #!/usr/bin/perl  #!/usr/bin/perl
2  use strict;  use strict;
3  use Test;  use Test;
4  BEGIN { plan tests => 4 }  BEGIN { plan tests => 55 }
5    
6  require Message::DOM::DOMImplementation;  require Message::DOM::DOMImplementation;
7    use Message::Util::Error;
8    
9  ## TODO: |create_document| tests  ## TODO: |create_document| tests
10    
# Line 11  my $dom = Message::DOM::DOMImplementatio Line 12  my $dom = Message::DOM::DOMImplementatio
12  my $doc = $dom->create_document;  my $doc = $dom->create_document;
13    
14  ## AUTOLOAD test  ## AUTOLOAD test
15  ok $doc->can ('create_element_ns');  ok $doc->can ('create_element_ns') ? 1 : 0, 1, "can create_element_ns";
16  my $el = $doc->create_element_ns (undef, 'test');  my $el = $doc->create_element_ns (undef, 'test');
17  ok UNIVERSAL::isa ($el, 'Message::IF::Element');  ok UNIVERSAL::isa ($el, 'Message::IF::Element');
18    
# Line 23  eval { Line 24  eval {
24  };  };
25  ok $something_called, 0;  ok $something_called, 0;
26    
27  ## NOTE: Tests for |create_*| methods found in each module's test file.  ## NOTE: Tests for |create_*| methods found in |DOM-Node.t|.
28    
29  my $impl = $doc->implementation;  my $impl = $doc->implementation;
30  ok UNIVERSAL::isa ($impl, 'Message::IF::DOMImplementation') ? 1 : 0, 1;  ok UNIVERSAL::isa ($impl, 'Message::IF::DOMImplementation') ? 1 : 0, 1;
31    
32  ## License: Public Domain.  ## |xmlVersion|
33    ok $doc->can ('xml_version') ? 1 : 0, 1, 'can xml_version';
34    
35    ok $doc->xml_version, '1.0', 'xml_version initial';
36    
37    $doc->xml_version ('1.1');
38    ok $doc->xml_version, '1.1', 'xml_version 1.1';
39    
40    $doc->xml_version ('1.0');
41    ok $doc->xml_version, '1.0', 'xml_version 1.0';
42    
43    try {
44      $doc->xml_version ('1.2');
45      ok undef, 'NOT_SUPPORTED_ERR', 'xml_version 1.2 exception';
46    } catch Message::IF::DOMException with {
47      my $err = shift;
48      ok $err->type, 'NOT_SUPPORTED_ERR', 'xml_version 1.2 exception';
49    };
50    ok $doc->xml_version, '1.0', 'xml_version 1.2';
51    
52    ## |xmlVersion| and |manakaiIsHTML|
53    my $html_doc = $doc->implementation->create_document;
54    {
55      $html_doc->manakai_is_html (1);
56      ok $html_doc->manakai_is_html ? 1 : 0, 1, 'HTMLDocument->manakai_is_html 1';
57      ok $html_doc->xml_version, undef, 'HTMLDocument->xml_version';
58      
59      try {
60        $html_doc->xml_version ('1.0');
61        ok undef, 'NOT_SUPPORTED_ERR', 'HTMLDocument->xml_version 1.0 exception';
62      } catch Message::IF::DOMException with {
63        my $err = shift;
64        ok $err->type, 'NOT_SUPPORTED_ERR',
65            'HTMLDocument->xml_version 1.0 exception';
66      };
67      ok $html_doc->xml_version, undef, 'HTMLDocument->xml_version 1.0';
68    
69      $html_doc->manakai_is_html (0);
70      ok $html_doc->manakai_is_html ? 1 : 0, 0, 'HTMLDocument->manakai_is_html 0';
71      ok $html_doc->xml_version, '1.0', '(was HTML) Document->xml_version 1.0';
72    
73      $html_doc->manakai_is_html (1);
74    }
75    
76    ## |xmlEncoding|
77    {
78      ok $doc->can ('xml_encoding') ? 1 : 0, 1, 'can xml_encoding';
79    
80      $doc->xml_encoding ('utf-8');
81      ok $doc->xml_encoding, 'utf-8', 'xml_encoding legal';
82    
83      $doc->xml_encoding ('\abcd');
84      ok $doc->xml_encoding, '\abcd', 'xml_encoding illegal';
85    
86      $doc->xml_encoding (undef);
87      ok $doc->xml_encoding, undef, 'xml_encoding null';
88    
89      ok $html_doc->xml_encoding, undef, 'HTMLDocument->xml_encoding';
90      
91      try {
92        $html_doc->xml_encoding ('utf-8');
93        ok undef, 'NOT_SUPPORTED_ERR', 'HTMLDocument->xml_encoding exception';
94      } catch Message::IF::DOMException with {
95        my $err = shift;
96        ok $err->type, 'NOT_SUPPORTED_ERR', 'HTMLDocument->xml_encoding exception';
97      };
98      ok $html_doc->xml_encoding, undef, 'HTMLDocument->xml_encoding';
99      
100      try {
101        $html_doc->xml_encoding (undef);
102        ok undef, 'NOT_SUPPORTED_ERR', 'HTMLDocument->xml_encoding exception 2';
103      } catch Message::IF::DOMException with {
104        my $err = shift;
105        ok $err->type, 'NOT_SUPPORTED_ERR', 'HTMLDocument->xml_encoding exception 2';
106      };
107      ok $html_doc->xml_encoding, undef, 'HTMLDocument->xml_encoding 2';
108    }
109    
110    ## |xmlStandalone|
111    {
112      ok $doc->can ('xml_standalone') ? 1 : 0, 1, 'can xml_standalone';
113    
114      $doc->xml_standalone (1);
115      ok $doc->xml_standalone ? 1 : 0, 1, 'xml_standalone 1';
116    
117      $doc->xml_standalone (0);
118      ok $doc->xml_standalone ? 1 : 0, 0, 'xml_standalone 0';
119    
120      ok $html_doc->xml_standalone ? 1 : 0, 0, 'HTMLDocument->xml_standalone';
121      
122      try {
123        $html_doc->xml_standalone (1);
124        ok undef, 'NOT_SUPPORTED_ERR', 'HTMLDocument->xml_standalone 1 exception';
125      } catch Message::IF::DOMException with {
126        my $err = shift;
127        ok $err->type, 'NOT_SUPPORTED_ERR',
128            'HTMLDocument->xml_standalone 1 exception';
129      };
130      ok $html_doc->xml_standalone ? 1 : 0, 0, 'HTMLDocument->xml_standalone 1';
131      
132      try {
133        $html_doc->xml_standalone (0);
134        ok undef, 'NOT_SUPPORTED_ERR', 'HTMLDocument->xml_standalone 0 exception';
135      } catch Message::IF::DOMException with {
136        my $err = shift;
137        ok $err->type, 'NOT_SUPPORTED_ERR',
138            'HTMLDocument->xml_standalone 0 exception';
139      };
140      ok $html_doc->xml_standalone ? 1 : 0, 0, 'HTMLDocument->xml_standalone 0';
141    }
142    
143    ## |strictErrorChecking|
144    {
145      ok $doc->can ('strict_error_checking') ? 1 : 0, 1, 'can strict_error_checking';
146    
147      $doc->strict_error_checking (0);
148      ok $doc->strict_error_checking ? 1 : 0, 0, 'strict_error_checking 0';
149    
150      $doc->strict_error_checking (1);
151      ok $doc->strict_error_checking ? 1 : 0, 1, 'strict_error_checking 1';
152    
153      $doc->strict_error_checking (undef);
154      ok $doc->strict_error_checking ? 1 : 0, 0, 'strict_error_checking undef';
155    
156      $doc->strict_error_checking (1);
157    }
158    
159    for my $prop (qw/document_uri input_encoding/) {
160      ok $doc->can ($prop) ? 1 : 0, 1, 'can ' . $prop;
161      
162      for ('http://absuri.test/', 'reluri', 0, '') {
163        $doc->$prop ($_);
164        ok $doc->$prop, $_, $prop . $_;
165      }
166    
167      $doc->$prop (undef);
168      ok $doc->$prop, undef, $prop . ' undef';
169    }
170    
171    for my $prop (qw/all_declarations_processed/) {
172      ok $doc->can ($prop) ? 1 : 0, 1, 'can ' . $prop;
173      
174      for (1, 0, '') {
175        $doc->$prop ($_);
176        ok $doc->$prop ? 1 : 0, $_ ? 1 : 0, $prop . $_;
177      }
178    
179      $doc->$prop (undef);
180      ok $doc->$prop ? 1 : 0, 0, $prop . ' undef';
181    }
182    
183    ## |manakaiIsHTML|, |compatMode|, and |manakaiCompatMode|
184    {
185      my $doc2 = $doc->implementation->create_document;
186      ok $doc2->can ('manakai_is_html') ? 1 : 0, 1, "can manakai_is_html";
187      ok $doc2->can ('compat_mode') ? 1 : 0, 1, "can compat_mode";
188      ok $doc2->can ('manakai_compat_mode') ? 1 : 0, 1, "can manakai_compat_mode";
189      ok $doc2->manakai_is_html ? 1 : 0, 0, "manakai_is_html [0]";
190      ok $doc2->compat_mode, 'CSS1Compat', 'compat_mode [0]';
191      ok $doc2->manakai_compat_mode, 'no quirks', 'manakai_compat_mode [0]';
192    
193      $doc2->manakai_compat_mode ('quirks');
194      ok $doc2->manakai_is_html ? 1 : 0, 0, "manakai_is_html [1]";
195      ok $doc2->compat_mode, 'CSS1Compat', 'compat_mode [1]';
196      ok $doc2->manakai_compat_mode, 'no quirks', 'manakai_compat_mode [1]';
197    
198      $doc2->manakai_compat_mode ('limited quirks');
199      ok $doc2->manakai_is_html ? 1 : 0, 0, "manakai_is_html [2]";
200      ok $doc2->compat_mode, 'CSS1Compat', 'compat_mode [2]';
201      ok $doc2->manakai_compat_mode, 'no quirks', 'manakai_compat_mode [2]';
202    
203      $doc2->manakai_compat_mode ('no quirks');
204      ok $doc2->manakai_is_html ? 1 : 0, 0, "manakai_is_html [3]";
205      ok $doc2->compat_mode, 'CSS1Compat', 'compat_mode [3]';
206      ok $doc2->manakai_compat_mode, 'no quirks', 'manakai_compat_mode [3]';
207    
208      $doc2->manakai_compat_mode ('bogus');
209      ok $doc2->manakai_is_html ? 1 : 0, 0, "manakai_is_html [4]";
210      ok $doc2->compat_mode, 'CSS1Compat', 'compat_mode [4]';
211      ok $doc2->manakai_compat_mode, 'no quirks', 'manakai_compat_mode [4]';
212    
213      $doc2->manakai_is_html (1);
214      ok $doc2->manakai_is_html ? 1 : 0, 1, "manakai_is_html [5]";
215      ok $doc2->compat_mode, 'CSS1Compat', 'compat_mode [5]';
216      ok $doc2->manakai_compat_mode, 'no quirks', 'manakai_compat_mode [5]';
217    
218      $doc2->manakai_compat_mode ('quirks');
219      ok $doc2->manakai_is_html ? 1 : 0, 1, "manakai_is_html [6]";
220      ok $doc2->compat_mode, 'BackCompat', 'compat_mode [6]';
221      ok $doc2->manakai_compat_mode, 'quirks', 'manakai_compat_mode [6]';
222    
223      $doc2->manakai_compat_mode ('limited quirks');
224      ok $doc2->manakai_is_html ? 1 : 0, 1, "manakai_is_html [7]";
225      ok $doc2->compat_mode, 'CSS1Compat', 'compat_mode [7]';
226      ok $doc2->manakai_compat_mode, 'limited quirks', 'manakai_compat_mode [7]';
227    
228      $doc2->manakai_compat_mode ('no quirks');
229      ok $doc2->manakai_is_html ? 1 : 0, 1, "manakai_is_html [8]";
230      ok $doc2->compat_mode, 'CSS1Compat', 'compat_mode [8]';
231      ok $doc2->manakai_compat_mode, 'no quirks', 'manakai_compat_mode [8]';
232    
233      $doc2->manakai_compat_mode ('bogus');
234      ok $doc2->manakai_is_html ? 1 : 0, 1, "manakai_is_html [9]";
235      ok $doc2->compat_mode, 'CSS1Compat', 'compat_mode [9]';
236      ok $doc2->manakai_compat_mode, 'no quirks', 'manakai_compat_mode [9]';
237    
238      $doc2->manakai_compat_mode ('quirks');
239      $doc2->manakai_is_html (0);
240      ok $doc2->manakai_is_html ? 1 : 0, 0, "manakai_is_html [10]";
241      ok $doc2->compat_mode, 'CSS1Compat', 'compat_mode [10]';
242      ok $doc2->manakai_compat_mode, 'no quirks', 'manakai_compat_mode [10]';
243    
244      $doc2->manakai_is_html (1);
245      ok $doc2->manakai_is_html ? 1 : 0, 1, "manakai_is_html [11]";
246      ok $doc2->compat_mode, 'CSS1Compat', 'compat_mode [11]';
247      ok $doc2->manakai_compat_mode, 'no quirks', 'manakai_compat_mode [11]';
248    }
249    
250    ## TODO: manakai_entity_base_uri
251    
252    =head1 LICENSE
253    
254    Copyright 2007 Wakaba <w@suika.fam.cx>
255    
256    This program is free software; you can redistribute it and/or
257    modify it under the same terms as Perl itself.
258    
259    =cut
260    
261  ## $Date$  ## $Date$

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24