set_flex_helper(helper)

# Opening
#############
helper.Click("Lexicon.png", "Couldn't find 'Lexicon' button")
LEFT_SIDEBAR.Click("LexiconEdit.png", "Couldn't find 'Lexicon Edit' button")

# Goal
#############

# Not doing the drag-drop directly, so if it fails we can
# pinpoint what wasn't found
glosses = MID_TOOLBAR.Find("3losses.png", "Couldn't find 'Glosses' column header")
target = MID_TOOLBAR.Find("lLexemeJorm_.png",
    "'Headword' and 'Lexeme Form' headers not where expected")
dragDrop(glosses, target)

# Check that it's in the new position
helper.Find(Pattern("hexemeformHe.png").similar(0.80), "'Glosses' column not in new position")

# Closing
##############
helper.write_success()

# Drag it back to previous position
glosses = MID_TOOLBAR.Find("3losses.png", "Couldn't find 'Glosses' column header",
    restart=True)
target = MID_TOOLBAR.Find("LexemeFormIG.png",
    "'Lexeme Form' and 'Grammatical Info' headers not where expected",
    restart=True)
dragDrop(glosses, target)
def run_test(language_idx):

    setAutoWaitTimeout(1)
    helper = TestHelper("test_" + languages[language_idx].lower() + "_localization")
    set_flex_helper(helper)
    
    # Opening: change UI to the language we want
    ################

    # Open Options popup
    wait(2)
    type("1", KeyModifier.ALT)
    for i in range(7):
        type(Key.RIGHT)
    for i in range(5):
        type(Key.DOWN)
    helper.Type(Key.ENTER)

    # Get to language drop-down menu
    type(Key.TAB)
    type(Key.TAB)

    # Get to the right language
    for i in range(len(languages)):
        type(Key.UP)
    for i in range(language_idx):
        type(Key.DOWN)

    type(Key.ENTER)
    wait(10)

    # GOAL
    ################

    for k in range(len(areas)):
        area = areas[k]

        # First see if there is any English (note: cognates may be
        # flagged as not translated)
        if language_idx != 2:
            # Check if whole area matches
            if area_regions[k].exists(Pattern(english_reference_images[k]).
                    similar(0.99)):
                helper.write_fail("Nothing translated in " + area)
                # If everything's in English, no need for more tests
                continue
            
            # Look for any English words
            if see_if_things_are_translated:
                words = english_words[k]
                for word in words:
                    if area_regions[k].exists(word):
                        helper.write_fail("'" + word + "' not translated in " + area)
        
        # Look for any placeholder squares
        if area_regions[k].exists(square_types[k]):
            helper.write_fail("Unable to render (placeholder boxes found) in " + area)

    
    # Closing: Go back to English UI
    ##############
    
    # Open Options popup
    type("1", KeyModifier.ALT)
    for i in range(7):
        type(Key.RIGHT)
    for i in range(5):
        type(Key.DOWN)
    helper.Type(Key.ENTER)
    
    # Get to language drop-down menu
    type(Key.TAB)
    type(Key.TAB)
        
    # Get to the top of the list, then go down to English
    for i in range(len(languages)):
        type(Key.UP)
    for i in range(languages.index("English")):
        type(Key.DOWN)
    type(Key.ENTER)
    wait(40)
    
    helper.write_success()