This tests that the different arguments given to a new window are honored.
Take note that menubar is special and always on in Mac but not in Win.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".



Scrollbar
PASS newWin.scrollbars.visible is true
PASS newWin.scrollbars.visible is false
PASS newWin.scrollbars.visible is true
PASS newWin.scrollbars.visible is false

Toolbar
FAIL newWin.toolbar.visible should be true. Was false.
PASS newWin.toolbar.visible is false
FAIL newWin.toolbar.visible should be true. Was false.
PASS newWin.toolbar.visible is false

Statusbar
FAIL newWin.statusbar.visible should be true. Was false.
PASS newWin.statusbar.visible is false
FAIL newWin.statusbar.visible should be true. Was false.
PASS newWin.statusbar.visible is false

Menubar
FAIL newWin.menubar.visible should be true. Was false.
PASS newWin.menubar.visible is isMenubarAlwaysExpected
FAIL newWin.menubar.visible should be true. Was false.
PASS newWin.menubar.visible is isMenubarAlwaysExpected

Locationbar
FAIL newWin.locationbar.visible should be true. Was false.
PASS newWin.locationbar.visible is false
FAIL newWin.locationbar.visible should be true. Was false.
PASS newWin.locationbar.visible is false
PASS successfullyParsed is true

TEST COMPLETE

