--- /dev/null
+layer at (0,0) size 785x760
+ RenderView at (0,0) size 785x600
+layer at (0,0) size 785x760
+ RenderBlock {HTML} at (0,0) size 785x760
+ RenderBody {BODY} at (8,8) size 769x744
+ RenderBlock {H1} at (0,0) size 769x37
+ RenderText {#text} at (0,0) size 420x36
+ text run at (0,0) width 420: "Form Element Geometry Tests"
+ RenderBlock {P} at (0,58) size 769x20
+ RenderText {#text} at (0,0) size 514x19
+ text run at (0,0) width 514: "These tests help us tune the widget classes in KWQ to have all the right fudge factors."
+ RenderBlock {H2} at (0,97) size 769x29
+ RenderText {#text} at (0,0) size 165x28
+ text run at (0,0) width 165: "Bounding Boxes"
+ RenderTable {TABLE} at (0,145) size 214x51
+ RenderTableSection {TBODY} at (0,0) size 214x50
+ RenderTableRow {TR} at (0,2) size 214x46
+ RenderTableCell {TD} at (2,2) size 80x46 [r=0 c=0 rs=1 cs=1]
+ RenderBlock {DIV} at (1,1) size 78x44 [border: (2px solid #0000FF)]
+ RenderInline {FONT} at (0,0) size 74x28
+ RenderButton {INPUT} at (2,2) size 74x40 [bgcolor=#C0C0C0]
+ RenderBlock (anonymous) at (6,6) size 62x28
+ RenderText at (0,0) size 62x28
+ text run at (0,0) width 62: "button"
+ RenderTableCell {TD} at (84,5) size 87x40 [r=0 c=1 rs=1 cs=1]
+ RenderBlock {DIV} at (1,1) size 85x38 [border: (2px solid #0000FF)]
+ RenderInline {FONT} at (0,0) size 81x28
+ RenderMenuList {SELECT} at (2,2) size 81x34 [bgcolor=#FFFFFF]
+ RenderBlock (anonymous) at (4,3) size 53x28
+ RenderText at (0,0) size 53x28
+ text run at (0,0) width 53: "menu"
+ RenderTableCell {TD} at (173,16) size 18x18 [r=0 c=2 rs=1 cs=1]
+ RenderBlock {DIV} at (1,1) size 16x16 [border: (2px solid #0000FF)]
+ RenderInline {FONT} at (0,0) size 12x28
+ RenderBlock {INPUT} at (2,2) size 12x12
+ RenderTableCell {TD} at (193,15) size 19x19 [r=0 c=3 rs=1 cs=1]
+ RenderBlock {DIV} at (1,1) size 17x17 [border: (2px solid #0000FF)]
+ RenderInline {FONT} at (0,0) size 13x28
+ RenderBlock {INPUT} at (2,2) size 13x13
+ RenderTable {TABLE} at (0,195) size 169x42
+ RenderTableSection {TBODY} at (0,0) size 169x41
+ RenderTableRow {TR} at (0,2) size 169x37
+ RenderTableCell {TD} at (2,2) size 56x37 [r=0 c=0 rs=1 cs=1]
+ RenderBlock {DIV} at (1,1) size 54x35 [border: (2px solid #0000FF)]
+ RenderButton {INPUT} at (2,2) size 50x31 [bgcolor=#C0C0C0]
+ RenderBlock (anonymous) at (6,6) size 38x19
+ RenderText at (0,0) size 38x19
+ text run at (0,0) width 38: "button"
+ RenderTableCell {TD} at (60,5) size 66x30 [r=0 c=1 rs=1 cs=1]
+ RenderBlock {DIV} at (1,1) size 64x28 [border: (2px solid #0000FF)]
+ RenderMenuList {SELECT} at (2,2) size 60x24 [bgcolor=#FFFFFF]
+ RenderBlock (anonymous) at (4,2) size 32x20
+ RenderText at (0,0) size 32x19
+ text run at (0,0) width 32: "menu"
+ RenderTableCell {TD} at (128,11) size 18x18 [r=0 c=2 rs=1 cs=1]
+ RenderBlock {DIV} at (1,1) size 16x16 [border: (2px solid #0000FF)]
+ RenderBlock {INPUT} at (2,2) size 12x12
+ RenderTableCell {TD} at (148,11) size 19x19 [r=0 c=3 rs=1 cs=1]
+ RenderBlock {DIV} at (1,1) size 17x17 [border: (2px solid #0000FF)]
+ RenderBlock {INPUT} at (2,2) size 13x13
+ RenderTable {TABLE} at (0,236) size 147x35
+ RenderTableSection {TBODY} at (0,0) size 147x34
+ RenderTableRow {TR} at (0,2) size 147x30
+ RenderTableCell {TD} at (2,2) size 44x30 [r=0 c=0 rs=1 cs=1]
+ RenderBlock {DIV} at (1,1) size 42x28 [border: (2px solid #0000FF)]
+ RenderInline {FONT} at (0,0) size 38x12
+ RenderButton {INPUT} at (2,2) size 38x24 [bgcolor=#C0C0C0]
+ RenderBlock (anonymous) at (6,6) size 26x12
+ RenderText at (0,0) size 26x12
+ text run at (0,0) width 26: "button"
+ RenderTableCell {TD} at (48,4) size 56x26 [r=0 c=1 rs=1 cs=1]
+ RenderBlock {DIV} at (1,1) size 54x24 [border: (2px solid #0000FF)]
+ RenderInline {FONT} at (0,0) size 50x12
+ RenderMenuList {SELECT} at (2,2) size 50x20 [bgcolor=#FFFFFF]
+ RenderBlock (anonymous) at (4,4) size 22x12
+ RenderText at (0,0) size 22x12
+ text run at (0,0) width 22: "menu"
+ RenderTableCell {TD} at (106,8) size 18x18 [r=0 c=2 rs=1 cs=1]
+ RenderBlock {DIV} at (1,1) size 16x16 [border: (2px solid #0000FF)]
+ RenderInline {FONT} at (0,0) size 12x12
+ RenderBlock {INPUT} at (2,2) size 12x12
+ RenderTableCell {TD} at (126,7) size 19x19 [r=0 c=3 rs=1 cs=1]
+ RenderBlock {DIV} at (1,1) size 17x17 [border: (2px solid #0000FF)]
+ RenderInline {FONT} at (0,0) size 13x12
+ RenderBlock {INPUT} at (2,2) size 13x13
+ RenderTable {TABLE} at (0,270) size 648x92
+ RenderTableSection {TBODY} at (0,0) size 648x91
+ RenderTableRow {TR} at (0,2) size 648x87
+ RenderTableCell {TD} at (2,2) size 108x29 [r=0 c=0 rs=1 cs=1]
+ RenderBlock {DIV} at (1,1) size 106x27 [border: (2px solid #0000FF)]
+ RenderTextControl {INPUT} at (2,2) size 102x23
+ RenderTableCell {TD} at (112,2) size 43x87 [r=0 c=1 rs=1 cs=1]
+ RenderBlock {DIV} at (1,1) size 41x85 [border: (2px solid #0000FF)]
+ RenderListBox {SELECT} at (2,2) size 37x81 [bgcolor=#FFFFFF] [border: (1px inset #808080)]
+ RenderTableCell {TD} at (157,2) size 278x37 [r=0 c=2 rs=1 cs=1]
+ RenderBlock {DIV} at (1,1) size 276x35 [border: (2px solid #0000FF)]
+ RenderFileUploadControl {INPUT} at (2,2) size 272x31 "No file selected"
+ RenderButton {INPUT} at (0,0) size 85x31 [bgcolor=#C0C0C0]
+ RenderBlock (anonymous) at (6,6) size 73x19
+ RenderText at (0,0) size 73x19
+ text run at (0,0) width 73: "Choose File"
+ RenderTableCell {TD} at (437,2) size 209x52 [r=0 c=3 rs=1 cs=1]
+ RenderBlock {DIV} at (1,1) size 207x50 [border: (2px solid #0000FF)]
+ RenderBlock {H2} at (0,381) size 769x29
+ RenderText {#text} at (0,0) size 199x28
+ text run at (0,0) width 199: "Baseline Alignment"
+ RenderBlock {DIV} at (0,429) size 769x45
+ RenderInline {FONT} at (0,0) size 271x28
+ RenderText {#text} at (0,8) size 43x28
+ text run at (0,8) width 43: "text "
+ RenderButton {INPUT} at (45,2) size 74x40 [bgcolor=#C0C0C0]
+ RenderBlock (anonymous) at (6,6) size 62x28
+ RenderText at (0,0) size 62x28
+ text run at (0,0) width 62: "button"
+ RenderText {#text} at (121,8) size 6x28
+ text run at (121,8) width 6: " "
+ RenderMenuList {SELECT} at (129,5) size 81x34 [bgcolor=#FFFFFF]
+ RenderBlock (anonymous) at (4,3) size 53x28
+ RenderText at (0,0) size 53x28
+ text run at (0,0) width 53: "menu"
+ RenderText {#text} at (212,8) size 6x28
+ text run at (212,8) width 6: " "
+ RenderBlock {INPUT} at (223,20) size 13x12
+ RenderText {#text} at (241,8) size 6x28
+ text run at (241,8) width 6: " "
+ RenderBlock {INPUT} at (252,19) size 14x13
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {DIV} at (0,473) size 769x36
+ RenderText {#text} at (0,8) size 26x19
+ text run at (0,8) width 26: "text "
+ RenderButton {INPUT} at (28,2) size 50x31 [bgcolor=#C0C0C0]
+ RenderBlock (anonymous) at (6,6) size 38x19
+ RenderText at (0,0) size 38x19
+ text run at (0,0) width 38: "button"
+ RenderText {#text} at (80,8) size 4x19
+ text run at (80,8) width 4: " "
+ RenderMenuList {SELECT} at (86,6) size 60x24 [bgcolor=#FFFFFF]
+ RenderBlock (anonymous) at (4,2) size 32x20
+ RenderText at (0,0) size 32x19
+ text run at (0,0) width 32: "menu"
+ RenderText {#text} at (148,8) size 4x19
+ text run at (148,8) width 4: " "
+ RenderBlock {INPUT} at (155,13) size 13x12
+ RenderText {#text} at (171,8) size 5x19
+ text run at (171,8) width 5: " "
+ RenderBlock {INPUT} at (179,12) size 14x13
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {DIV} at (0,508) size 769x25
+ RenderInline {FONT} at (0,0) size 150x12
+ RenderText {#text} at (0,6) size 18x12
+ text run at (0,6) width 18: "text "
+ RenderButton {INPUT} at (18,0) size 38x24 [bgcolor=#C0C0C0]
+ RenderBlock (anonymous) at (6,6) size 26x12
+ RenderText at (0,0) size 26x12
+ text run at (0,0) width 26: "button"
+ RenderText {#text} at (56,6) size 3x12
+ text run at (56,6) width 3: " "
+ RenderMenuList {SELECT} at (59,2) size 50x20 [bgcolor=#FFFFFF]
+ RenderBlock (anonymous) at (4,4) size 22x12
+ RenderText at (0,0) size 22x12
+ text run at (0,0) width 22: "menu"
+ RenderText {#text} at (109,6) size 3x12
+ text run at (109,6) width 3: " "
+ RenderBlock {INPUT} at (114,5) size 13x12
+ RenderText {#text} at (128,6) size 4x12
+ text run at (128,6) width 4: " "
+ RenderBlock {INPUT} at (133,4) size 14x13
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {DIV} at (0,532) size 769x59
+ RenderText {#text} at (0,31) size 26x19
+ text run at (0,31) width 26: "text "
+ RenderTextControl {INPUT} at (28,29) size 102x23
+ RenderText {#text} at (132,31) size 4x19
+ text run at (132,31) width 4: " "
+ RenderFileUploadControl {INPUT} at (138,25) size 272x31 "No file selected"
+ RenderButton {INPUT} at (0,0) size 85x31 [bgcolor=#C0C0C0]
+ RenderBlock (anonymous) at (6,6) size 73x19
+ RenderText at (0,0) size 73x19
+ text run at (0,0) width 73: "Choose File"
+ RenderText {#text} at (412,31) size 4x19
+ text run at (412,31) width 4: " "
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {H2} at (0,609) size 769x29
+ RenderText {#text} at (0,0) size 195x28
+ text run at (0,0) width 195: "Pop-up Menu Sizes"
+ RenderBlock {DIV} at (0,657) size 769x39
+ RenderInline {FONT} at (0,0) size 218x28
+ RenderText {#text} at (0,0) size 0x0
+ RenderMenuList {SELECT} at (2,2) size 35x34 [bgcolor=#FFFFFF]
+ RenderBlock (anonymous) at (4,3) size 7x28
+ RenderText at (0,0) size 0x28
+ text run at (0,0) width 0: " "
+ RenderText {#text} at (39,5) size 6x28
+ text run at (39,5) width 6: " "
+ RenderMenuList {SELECT} at (47,2) size 35x34 [bgcolor=#FFFFFF]
+ RenderBlock (anonymous) at (4,3) size 7x28
+ RenderText at (0,0) size 5x28
+ text run at (0,0) width 5: "|"
+ RenderText {#text} at (84,5) size 6x28
+ text run at (84,5) width 6: " "
+ RenderMenuList {SELECT} at (92,2) size 124x34 [bgcolor=#FFFFFF]
+ RenderBlock (anonymous) at (4,3) size 96x28
+ RenderText at (0,0) size 96x28
+ text run at (0,0) width 96: "xxxxxxxx"
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {DIV} at (0,695) size 769x29
+ RenderMenuList {SELECT} at (2,2) size 35x24 [bgcolor=#FFFFFF]
+ RenderBlock (anonymous) at (4,2) size 7x20
+ RenderText at (0,0) size 0x19
+ text run at (0,0) width 0: " "
+ RenderText {#text} at (39,4) size 4x19
+ text run at (39,4) width 4: " "
+ RenderMenuList {SELECT} at (45,2) size 35x24 [bgcolor=#FFFFFF]
+ RenderBlock (anonymous) at (4,2) size 7x20
+ RenderText at (0,0) size 3x19
+ text run at (0,0) width 3: "|"
+ RenderText {#text} at (82,4) size 4x19
+ text run at (82,4) width 4: " "
+ RenderMenuList {SELECT} at (88,2) size 84x24 [bgcolor=#FFFFFF]
+ RenderBlock (anonymous) at (4,2) size 56x20
+ RenderText at (0,0) size 56x19
+ text run at (0,0) width 56: "xxxxxxxx"
+ RenderText {#text} at (0,0) size 0x0
+ RenderBlock {DIV} at (0,723) size 769x21
+ RenderInline {FONT} at (0,0) size 144x12
+ RenderText {#text} at (0,0) size 0x0
+ RenderMenuList {SELECT} at (0,0) size 35x20 [bgcolor=#FFFFFF]
+ RenderBlock (anonymous) at (4,4) size 7x12
+ RenderText at (0,0) size 0x12
+ text run at (0,0) width 0: " "
+ RenderText {#text} at (35,4) size 3x12
+ text run at (35,4) width 3: " "
+ RenderMenuList {SELECT} at (38,0) size 35x20 [bgcolor=#FFFFFF]
+ RenderBlock (anonymous) at (4,4) size 7x12
+ RenderText at (0,0) size 3x12
+ text run at (0,0) width 3: "|"
+ RenderText {#text} at (73,4) size 3x12
+ text run at (73,4) width 3: " "
+ RenderMenuList {SELECT} at (76,0) size 68x20 [bgcolor=#FFFFFF]
+ RenderBlock (anonymous) at (4,4) size 40x12
+ RenderText at (0,0) size 40x12
+ text run at (0,0) width 40: "xxxxxxxx"
+ RenderText {#text} at (0,0) size 0x0
+layer at (15,285) size 98x19
+ RenderBlock {DIV} at (2,2) size 98x19
+ RenderText {#text} at (0,0) size 51x19
+ text run at (0,0) width 51: "text field"
+layer at (450,285) size 199x42
+ RenderTextControl {TEXTAREA} at (4,4) size 199x42
+ RenderBlock {DIV} at (2,2) size 195x19
+ RenderText {#text} at (0,0) size 48x19
+ text run at (0,0) width 48: "textarea"
+layer at (38,571) size 98x19
+ RenderBlock {DIV} at (2,2) size 98x19
+ RenderText {#text} at (0,0) size 51x19
+ text run at (0,0) width 51: "text field"
+layer at (426,542) size 199x42
+ RenderTextControl {TEXTAREA} at (418,2) size 199x42
+ RenderBlock {DIV} at (2,2) size 195x19
+ RenderText {#text} at (0,0) size 48x19
+ text run at (0,0) width 48: "textarea"
--- /dev/null
+This test covers the correctness and behaviour of switch statements.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS characterSwitch('A' + emptyString1) is "A"
+PASS characterSwitch('A' + emptyString1 + emptyString2) is "A"
+PASS characterSwitch(emptyString1 + emptyString2) is "default"
+PASS characterSwitch('\0') is "\0"
+PASS characterSwitch('A') is "A"
+PASS characterSwitch('a') is "a"
+PASS characterSwitch('1') is "1"
+PASS characterSwitch('-1') is "default"
+PASS characterSwitch('B') is "B"
+PASS characterSwitch('?') is "default"
+PASS characterSwitch({toString: function(){return 'B'}}) is "default"
+PASS characterSwitch(0) is "default"
+PASS characterSwitch(-0) is "default"
+PASS characterSwitch(1) is "default"
+PASS characterSwitch(1.1) is "default"
+PASS characterSwitch(-1) is "default"
+PASS characterSwitch(-1000000000) is "default"
+PASS characterSwitch(1000000000) is "default"
+PASS characterSwitch({}) is "default"
+PASS sparseCharacterSwitch('\0') is "\0"
+PASS sparseCharacterSwitch('A') is "A"
+PASS sparseCharacterSwitch('a') is "a"
+PASS sparseCharacterSwitch('1') is "1"
+PASS sparseCharacterSwitch('-1') is "default"
+PASS sparseCharacterSwitch('B') is "B"
+PASS sparseCharacterSwitch('?') is "?"
+PASS sparseCharacterSwitch({toString: function(){return 'B'}}) is "default"
+PASS sparseCharacterSwitch(0) is "default"
+PASS sparseCharacterSwitch(-0) is "default"
+PASS sparseCharacterSwitch(1) is "default"
+PASS sparseCharacterSwitch(1.1) is "default"
+PASS sparseCharacterSwitch(-1) is "default"
+PASS sparseCharacterSwitch(-1000000000) is "default"
+PASS sparseCharacterSwitch(1000000000) is "default"
+PASS sparseCharacterSwitch({}) is "default"
+PASS stringSwitch('\0') is "\0"
+PASS stringSwitch('A') is "A"
+PASS stringSwitch('a') is "a"
+PASS stringSwitch('1') is "1"
+PASS stringSwitch('-1') is "-1"
+PASS stringSwitch('B') is "B"
+PASS stringSwitch('?') is "?"
+PASS stringSwitch('some string') is "some string"
+PASS stringSwitch({toString: function(){return 'some string'}}) is "default"
+PASS stringSwitch('s') is "default"
+PASS stringSwitch(0) is "default"
+PASS stringSwitch(-0) is "default"
+PASS stringSwitch(1) is "default"
+PASS stringSwitch(1.1) is "default"
+PASS stringSwitch(-1) is "default"
+PASS stringSwitch(-1000000000) is "default"
+PASS stringSwitch(1000000000) is "default"
+PASS stringSwitch({}) is "default"
+PASS numberSwitch('\0') is "default"
+PASS numberSwitch('A') is "default"
+PASS numberSwitch('a') is "default"
+PASS numberSwitch('1') is "default"
+PASS numberSwitch('-1') is "default"
+PASS numberSwitch('B') is "default"
+PASS numberSwitch('?') is "default"
+PASS numberSwitch('some string') is "default"
+PASS numberSwitch({valueOf: function(){return 0}}) is "default"
+PASS numberSwitch('s') is "default"
+PASS numberSwitch(0) is 0
+PASS numberSwitch(-0) is 0
+PASS numberSwitch(1) is 1
+PASS numberSwitch(1.1) is "default"
+PASS numberSwitch(-1) is -1
+PASS numberSwitch(-1000000000) is "default"
+PASS numberSwitch(1000000000) is "default"
+PASS numberSwitch({}) is "default"
+PASS sparseNumberSwitch('\0') is "default"
+PASS sparseNumberSwitch('A') is "default"
+PASS sparseNumberSwitch('a') is "default"
+PASS sparseNumberSwitch('1') is "default"
+PASS sparseNumberSwitch('-1') is "default"
+PASS sparseNumberSwitch('B') is "default"
+PASS sparseNumberSwitch('?') is "default"
+PASS sparseNumberSwitch('some string') is "default"
+PASS sparseNumberSwitch({valueOf: function(){return 0}}) is "default"
+PASS sparseNumberSwitch('s') is "default"
+PASS sparseNumberSwitch(0) is 0
+PASS sparseNumberSwitch(-0) is 0
+PASS sparseNumberSwitch(1) is 1
+PASS sparseNumberSwitch(1.1) is "default"
+PASS sparseNumberSwitch(-1) is -1
+PASS sparseNumberSwitch(-1000000000) is -1000000000
+PASS sparseNumberSwitch(1000000000) is 1000000000
+PASS sparseNumberSwitch({}) is "default"
+PASS generalSwitch('\0') is "\0"
+PASS generalSwitch('A') is "A"
+PASS generalSwitch('a') is "a"
+PASS generalSwitch('1') is "1"
+PASS generalSwitch('-1') is "-1"
+PASS generalSwitch('B') is "B"
+PASS generalSwitch('?') is "?"
+PASS generalSwitch('some string') is "some string"
+PASS generalSwitch({valueOf: function(){return 0}}) is "default"
+PASS generalSwitch('s') is "default"
+PASS generalSwitch(0) is 0
+PASS generalSwitch(-0) is 0
+PASS generalSwitch(1) is 1
+PASS generalSwitch(1.1) is "default"
+PASS generalSwitch(-1) is -1
+PASS generalSwitch(-1000000000) is -1000000000
+PASS generalSwitch(1000000000) is 1000000000
+PASS generalSwitch({}) is "default"
+PASS successfullyParsed is true
+
+TEST COMPLETE
+