'
' This test uses the concept of MappedName to make the source code
' clearer and more independent
'
<InCisif.net.Library.Test("Implement a partial verification of the main menu page demo-menu-bar.html", 1, TestPriority.High)> _
Public Sub MenuUnitTest()

    Dim t As InCisif.net.Library.Test
    Try
        t = New InCisif.net.Library.Test(Language.VBNET, Me)

        Page.URL = "http://www.dhtmlgoodies.com/scripts/menu-for-applications/demos/demo-menu-bar.html"
        Page.WaitForPage("/demo-menu-bar.html")

        '
        ' Implement a map to make the test source code more independent and
        ' more readable.
        '
        Page.MappedNames.Enable = True    

        Page.MappedNames.AddList( _
            "MAIN_MENU_NEW"                             ,"DHTMLSuite_menuItem1", _
            "MAIN_MENU_EDIT"                            ,"DHTMLSuite_menuItem2", _
            "MAIN_MENU_SAVE"                            ,"DHTMLSuite_menuItem3", _
            "MAIN_MENU_SAVE_ICON"                       ,"menuItemIcon3", _
            "MAIN_MENU_PRINT"                           ,"DHTMLSuite_menuItem10", _
            "MAIN_MENU_OPEN"                            ,"menuItemText11", _
            "MAIN_MENU_OPEN_DOWN_ARROW"                 ,"DHTMLSuite_menuBar_arrow11", _
            "MAIN_MENU_OPEN.RTF"                        ,"DHTMLSuite_menuItem111", _
            "MAIN_MENU_OPEN.PDF"                        ,"DHTMLSuite_menuItem112", _
            "MAIN_MENU_OPEN.SPREADSHEET"                ,"DHTMLSuite_menuItem114", _
            "MAIN_MENU_OPEN.TEMPLATE"                   ,"menuItemText113", _
            "MAIN_MENU_OPEN.TEMPLATE.RTF"               ,"DHTMLSuite_menuItem1131", _
            "MAIN_MENU_OPEN.TEMPLATE.PDF"               ,"DHTMLSuite_menuItem1132", _
            "MAIN_MENU_OPEN.TEMPLATE.DOC"               ,"DHTMLSuite_menuItem1133", _
            "MAIN_MENU_HELP"                            ,"DHTMLSuite_menuItem40", _
            "MAIN_MENU_HELP.ABOUT"                      ,"DHTMLSuite_menuItem41", _
            "MAIN_MENU_HELP.INDEX"                      ,"DHTMLSuite_menuItem42", _
            "MAIN_MENU_HELP.SUPPORT"                    ,"DHTMLSuite_menuItem43", _
            "MAIN_MENU_HELP.SUPPORT.CONTACT"            ,"menuItemText431", _
            "MAIN_MENU_HELP.SUPPORT.CONTACT.MANAGER"    ,"menuItemText4311", _
            "MAIN_MENU_HELP.SUPPORT.CONTACT.SUPPORT"    ,"menuItemText4312", _
            "MAIN_MENU_HELP.SUPPORT.CONTACT.FINANCE_DEP","menuItemText4313", _
            "MAIN_MENU_HELP.SUPPORT.CONTACT.ACCOUNT_MAN","menuItemText4314", _
            "MAIN_MENU_HELP.SUPPORT.EMAIL"              ,"DHTMLSuite_menuItem432" _
        )

        Page.Control("MAIN_MENU_NEW").Click(true)   '' New
        Page.Control("MAIN_MENU_EDIT").Click(true)  '' Edit

        Page.Control("MAIN_MENU_SAVE").Click()  '' Save
        Page.AlertBox.Control("OK").Click()     '' Alert box

        Page.Control("MAIN_MENU_SAVE_ICON").Click() '' Save Icon
        Page.AlertBox.Control("OK").Click()         '' Alert Box

        Page.WaitUntilVisible((Page.Control("MAIN_MENU_PRINT"))) '' Print Icon Verify it is visible

        t.ASSERT(Page.Control("MAIN_MENU_OPEN"),"Open")
        Page.Control("MAIN_MENU_OPEN_DOWN_ARROW").Click(true) '' Click on the down arrow menu open
            t.ASSERT(Page.Control("MAIN_MENU_OPEN.RTF") , "RTF")    
            t.ASSERT(Page.Control("MAIN_MENU_OPEN.PDF") , "PDF")
            t.ASSERT(Page.Control("MAIN_MENU_OPEN.SPREADSHEET") , "Spreadsheet")
            t.ASSERT(Page.Control("MAIN_MENU_OPEN.TEMPLATE"),"Template")
            t.ASSERT(Page.Control("MAIN_MENU_OPEN.TEMPLATE.RTF") , "RTF")
            t.ASSERT(Page.Control("MAIN_MENU_OPEN.TEMPLATE.PDF") , "PDF")
            t.ASSERT(Page.Control("MAIN_MENU_OPEN.TEMPLATE.DOC") , "DOC")

        '' Verify the content of the Help Menu
        t.ASSERT(Page.Control("MAIN_MENU_HELP") , "Help") '' Verify that the menu Help exist and Activate the mouse on it
            t.ASSERT(Page.Control("MAIN_MENU_HELP.ABOUT") , "About") ''  htmldivelementclass
            t.ASSERT(Page.Control("MAIN_MENU_HELP.INDEX") , "Index") ''  htmldivelementclass
            t.ASSERT(Page.Control("MAIN_MENU_HELP.SUPPORT") , "Support") '' Support Menu
            t.ASSERT(Page.Control("MAIN_MENU_HELP.SUPPORT.CONTACT") , "Contact") ''  Contact Menu
            t.ASSERT(Page.Control("MAIN_MENU_HELP.SUPPORT.CONTACT.MANAGER") , "Manager") ''  Manager Menu
            t.ASSERT(Page.Control("MAIN_MENU_HELP.SUPPORT.CONTACT.SUPPORT") , "Support") ''  Sub Support Menu
            t.ASSERT(Page.Control("MAIN_MENU_HELP.SUPPORT.CONTACT.FINANCE_DEP") , "Finance dep.") ''  Finance dep Menu
            t.ASSERT(Page.Control("MAIN_MENU_HELP.SUPPORT.CONTACT.ACCOUNT_MAN") , "Account man.") ''  Account Man. Menu
            t.ASSERT(Page.Control("MAIN_MENU_HELP.SUPPORT.EMAIL") , "Email") '' Email Menu
            Page.Control("MAIN_MENU_HELP.SUPPORT.EMAIL").Click() '' Close The Menu

        t.Passed = True
    Finally
        t.Dispose()
    End Try
End Sub