Home | History | Annotate | Download | only in statements
      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 	Filename:     switch.js
     24 	Description:  'Tests the switch statement'
     25 
     26     http://scopus.mcom.com/bugsplat/show_bug.cgi?id=323696
     27 
     28 	Author:       Nick Lerissa
     29 	Date:         March 19, 1998
     30 */
     31 
     32 	var SECTION = 'As described in Netscape doc "Whats new in JavaScript 1.2"';
     33 	var VERSION = 'no version';
     34     startTest();
     35 	var TITLE   = 'statements: switch';
     36 	var BUGNUMBER="323696";
     37 
     38 	writeHeaderToLog("Executing script: switch.js");
     39 	writeHeaderToLog( SECTION + " "+ TITLE);
     40 
     41 	var count = 0;
     42 	var testcases = new Array();
     43 
     44 	var var1 = "match string";
     45 	var match1 = false;
     46 	var match2 = false;
     47 	var match3 = false;
     48 
     49 	switch (var1)
     50 	{
     51 	    case "match string":
     52 	        match1 = true;
     53 	    case "bad string 1":
     54 	        match2 = true;
     55 	        break;
     56 	    case "bad string 2":
     57 	        match3 = true;
     58 	}
     59 
     60 	testcases[count++] = new TestCase ( SECTION, 'switch statement',
     61 	                                    true, match1);
     62 
     63 	testcases[count++] = new TestCase ( SECTION, 'switch statement',
     64 	                                    true, match2);
     65 
     66 	testcases[count++] = new TestCase ( SECTION, 'switch statement',
     67 	                                    false, match3);
     68 
     69 	var var2 = 3;
     70 
     71 	var match1 = false;
     72 	var match2 = false;
     73 	var match3 = false;
     74 	var match4 = false;
     75 	var match5 = false;
     76 
     77 	switch (var2)
     78 	{
     79 	    case 1:
     80 /*	        switch (var1)
     81 	        {
     82 	            case "foo":
     83 	                match1 = true;
     84 	            break;
     85 	            case 3:
     86 	                match2 = true;
     87 	            break;
     88 	        }*/
     89 	        match3 = true;
     90 	    break;
     91 	    case 2:
     92 	        match4 = true;
     93 	    break;
     94 	    case 3:
     95 	        match5 = true;
     96 	    break;
     97 	}
     98 	testcases[count++] = new TestCase ( SECTION, 'switch statement',
     99 	                                    false, match1);
    100 
    101 	testcases[count++] = new TestCase ( SECTION, 'switch statement',
    102 	                                    false, match2);
    103 
    104 	testcases[count++] = new TestCase ( SECTION, 'switch statement',
    105 	                                    false, match3);
    106 
    107 	testcases[count++] = new TestCase ( SECTION, 'switch statement',
    108 	                                    false, match4);
    109 
    110 	testcases[count++] = new TestCase ( SECTION, 'switch statement',
    111 	                                    true, match5);
    112 
    113 	function test()
    114 	{
    115 	   for ( tc=0; tc < testcases.length; tc++ ) {
    116 	        testcases[tc].passed = writeTestCaseResult(
    117 	        testcases[tc].expect,
    118 	        testcases[tc].actual,
    119 	        testcases[tc].description +" = "+
    120 	        testcases[tc].actual );
    121 	        testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
    122 	   }
    123 	   stopTest();
    124 	   return ( testcases );
    125 	}
    126 
    127 	test();
    128