]>
Commit | Line | Data |
---|---|---|
b37bf2e1 A |
1 | /* The contents of this file are subject to the Netscape Public |
2 | * License Version 1.1 (the "License"); you may not use this file | |
3 | * except in compliance with the License. You may obtain a copy of | |
4 | * the License at http://www.mozilla.org/NPL/ | |
5 | * | |
6 | * Software distributed under the License is distributed on an "AS | |
7 | * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or | |
8 | * implied. See the License for the specific language governing | |
9 | * rights and limitations under the License. | |
10 | * | |
11 | * The Original Code is Mozilla Communicator client code, released March | |
12 | * 31, 1998. | |
13 | * | |
14 | * The Initial Developer of the Original Code is Netscape Communications | |
15 | * Corporation. Portions created by Netscape are | |
16 | * Copyright (C) 1998 Netscape Communications Corporation. All | |
17 | * Rights Reserved. | |
18 | * | |
19 | * Contributor(s): | |
20 | * | |
21 | */ | |
22 | /** | |
23 | File Name: 15.5.1.js | |
24 | ECMA Section: 15.5.1 The String Constructor called as a Function | |
25 | 15.5.1.1 String(value) | |
26 | 15.5.1.2 String() | |
27 | ||
28 | Description: | |
29 | When String is called as a function rather than as | |
30 | a constructor, it performs a type conversion. | |
31 | - String(value) returns a string value (not a String | |
32 | object) computed by ToString(value) | |
33 | - String() returns the empty string "" | |
34 | ||
35 | Author: christine@netscape.com | |
36 | Date: 1 october 1997 | |
37 | */ | |
38 | ||
39 | var SECTION = "15.5.1"; | |
40 | var VERSION = "ECMA_1"; | |
41 | startTest(); | |
42 | var TITLE = "The String Constructor Called as a Function"; | |
43 | ||
44 | writeHeaderToLog( SECTION + " "+ TITLE); | |
45 | ||
46 | var testcases = getTestCases(); | |
47 | test(); | |
48 | ||
49 | function getTestCases() { | |
50 | var array = new Array(); | |
51 | var item = 0; | |
52 | ||
53 | array[item++] = new TestCase( SECTION, "String('string primitive')", "string primitive", String('string primitive') ); | |
54 | array[item++] = new TestCase( SECTION, "String(void 0)", "undefined", String( void 0) ); | |
55 | array[item++] = new TestCase( SECTION, "String(null)", "null", String( null ) ); | |
56 | array[item++] = new TestCase( SECTION, "String(true)", "true", String( true) ); | |
57 | array[item++] = new TestCase( SECTION, "String(false)", "false", String( false ) ); | |
58 | array[item++] = new TestCase( SECTION, "String(Boolean(true))", "true", String(Boolean(true)) ); | |
59 | array[item++] = new TestCase( SECTION, "String(Boolean(false))", "false", String(Boolean(false)) ); | |
60 | array[item++] = new TestCase( SECTION, "String(Boolean())", "false", String(Boolean(false)) ); | |
61 | array[item++] = new TestCase( SECTION, "String(new Array())", "", String( new Array()) ); | |
62 | array[item++] = new TestCase( SECTION, "String(new Array(1,2,3))", "1,2,3", String( new Array(1,2,3)) ); | |
63 | ||
64 | ||
65 | array[item++] = new TestCase( SECTION, "String( Number.NaN )", "NaN", String( Number.NaN ) ); | |
66 | array[item++] = new TestCase( SECTION, "String( 0 )", "0", String( 0 ) ); | |
67 | array[item++] = new TestCase( SECTION, "String( -0 )", "0", String( -0 ) ); | |
68 | array[item++] = new TestCase( SECTION, "String( Number.POSITIVE_INFINITY )", "Infinity", String( Number.POSITIVE_INFINITY ) ); | |
69 | array[item++] = new TestCase( SECTION, "String( Number.NEGATIVE_INFINITY )", "-Infinity", String( Number.NEGATIVE_INFINITY ) ); | |
70 | array[item++] = new TestCase( SECTION, "String( -1 )", "-1", String( -1 ) ); | |
71 | ||
72 | // cases in step 6: integers 1e21 > x >= 1 or -1 >= x > -1e21 | |
73 | ||
74 | array[item++] = new TestCase( SECTION, "String( 1 )", "1", String( 1 ) ); | |
75 | array[item++] = new TestCase( SECTION, "String( 10 )", "10", String( 10 ) ); | |
76 | array[item++] = new TestCase( SECTION, "String( 100 )", "100", String( 100 ) ); | |
77 | array[item++] = new TestCase( SECTION, "String( 1000 )", "1000", String( 1000 ) ); | |
78 | array[item++] = new TestCase( SECTION, "String( 10000 )", "10000", String( 10000 ) ); | |
79 | array[item++] = new TestCase( SECTION, "String( 10000000000 )", "10000000000", String( 10000000000 ) ); | |
80 | array[item++] = new TestCase( SECTION, "String( 10000000000000000000 )", "10000000000000000000", String( 10000000000000000000 ) ); | |
81 | array[item++] = new TestCase( SECTION, "String( 100000000000000000000 )","100000000000000000000",String( 100000000000000000000 ) ); | |
82 | ||
83 | array[item++] = new TestCase( SECTION, "String( 12345 )", "12345", String( 12345 ) ); | |
84 | array[item++] = new TestCase( SECTION, "String( 1234567890 )", "1234567890", String( 1234567890 ) ); | |
85 | ||
86 | array[item++] = new TestCase( SECTION, "String( -1 )", "-1", String( -1 ) ); | |
87 | array[item++] = new TestCase( SECTION, "String( -10 )", "-10", String( -10 ) ); | |
88 | array[item++] = new TestCase( SECTION, "String( -100 )", "-100", String( -100 ) ); | |
89 | array[item++] = new TestCase( SECTION, "String( -1000 )", "-1000", String( -1000 ) ); | |
90 | array[item++] = new TestCase( SECTION, "String( -1000000000 )", "-1000000000", String( -1000000000 ) ); | |
91 | array[item++] = new TestCase( SECTION, "String( -1000000000000000 )", "-1000000000000000", String( -1000000000000000 ) ); | |
92 | array[item++] = new TestCase( SECTION, "String( -100000000000000000000 )", "-100000000000000000000", String( -100000000000000000000 ) ); | |
93 | array[item++] = new TestCase( SECTION, "String( -1000000000000000000000 )", "-1e+21", String( -1000000000000000000000 ) ); | |
94 | ||
95 | array[item++] = new TestCase( SECTION, "String( -12345 )", "-12345", String( -12345 ) ); | |
96 | array[item++] = new TestCase( SECTION, "String( -1234567890 )", "-1234567890", String( -1234567890 ) ); | |
97 | ||
98 | // cases in step 7: numbers with a fractional component, 1e21> x >1 or -1 > x > -1e21, | |
99 | array[item++] = new TestCase( SECTION, "String( 1.0000001 )", "1.0000001", String( 1.0000001 ) ); | |
100 | ||
101 | ||
102 | // cases in step 8: fractions between 1 > x > -1, exclusive of 0 and -0 | |
103 | ||
104 | // cases in step 9: numbers with 1 significant digit >= 1e+21 or <= 1e-6 | |
105 | ||
106 | array[item++] = new TestCase( SECTION, "String( 1000000000000000000000 )", "1e+21", String( 1000000000000000000000 ) ); | |
107 | array[item++] = new TestCase( SECTION, "String( 10000000000000000000000 )", "1e+22", String( 10000000000000000000000 ) ); | |
108 | ||
109 | // cases in step 10: numbers with more than 1 significant digit >= 1e+21 or <= 1e-6 | |
110 | array[item++] = new TestCase( SECTION, "String( 1.2345 )", "1.2345", String( 1.2345)); | |
111 | array[item++] = new TestCase( SECTION, "String( 1.234567890 )", "1.23456789", String( 1.234567890 )); | |
112 | ||
113 | array[item++] = new TestCase( SECTION, "String( .12345 )", "0.12345", String(.12345 ) ); | |
114 | array[item++] = new TestCase( SECTION, "String( .012345 )", "0.012345", String(.012345) ); | |
115 | array[item++] = new TestCase( SECTION, "String( .0012345 )", "0.0012345", String(.0012345) ); | |
116 | array[item++] = new TestCase( SECTION, "String( .00012345 )", "0.00012345", String(.00012345) ); | |
117 | array[item++] = new TestCase( SECTION, "String( .000012345 )", "0.000012345", String(.000012345) ); | |
118 | array[item++] = new TestCase( SECTION, "String( .0000012345 )", "0.0000012345", String(.0000012345) ); | |
119 | array[item++] = new TestCase( SECTION, "String( .00000012345 )", "1.2345e-7", String(.00000012345)); | |
120 | ||
121 | array[item++] = new TestCase( "15.5.2", "String()", "", String() ); | |
122 | ||
123 | return ( array ); | |
124 | } | |
125 | function test() { | |
126 | for ( tc=0; tc < testcases.length; tc++ ) { | |
127 | testcases[tc].passed = writeTestCaseResult( | |
128 | testcases[tc].expect, | |
129 | testcases[tc].actual, | |
130 | testcases[tc].description +" = "+ | |
131 | testcases[tc].actual ); | |
132 | ||
133 | testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value "; | |
134 | } | |
135 | stopTest(); | |
136 | return ( testcases ); | |
137 | } |