18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/**
28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  File Name:          switch-003.js
38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  ECMA Section:
48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  Description:        The switch Statement
58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  Attempt to verify that case statements are evaluated in source order
78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  Author:             christine@netscape.com
98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *  Date:               11 August 1998
108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project *
118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */
128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    var SECTION = "switch-003";
138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    var VERSION = "ECMA_2";
148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    var TITLE   = "The switch statement";
158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    startTest();
178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    writeHeaderToLog( SECTION + " "+ TITLE);
188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    var tc = 0;
208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    var testcases = new Array();
218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( "a", "abc" );
238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( "b", "bc" );
248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( "c", "c" );
258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( "d", "*abc" );
268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( "v", "*abc" );
278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( "w", "w*abc" );
288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( "x", "xw*abc" );
298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( "y", "yxw*abc" );
308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    SwitchTest( "z", "zyxw*abc" );
318e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project//    SwitchTest( new java.lang.String("z"), "*abc" );
328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    test();
348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    function SwitchTest( input, expect ) {
368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        var result = "";
378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        switch ( input ) {
398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            case "z": result += "z";
408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            case "y": result += "y";
418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            case "x": result += "x";
428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            case "w": result += "w";
438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            default: result += "*";
448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            case "a": result += "a";
458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            case "b": result += "b";
468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            case "c": result += "c";
478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        }
488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project
498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project        testcases[tc++] = new TestCase(
508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            SECTION,
518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            "switch with no breaks:  input is " + input,
528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            expect,
538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project            result );
548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project    }