<html>
<head>
  <title>Test for IME state on input type change</title>
  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
  <script src="file_ime_state_test_helper.js"></script>
  <script src="file_test_ime_state_on_input_type_change.js"></script>
  <link rel="stylesheet" href="chrome://mochikit/content/tests/SimpleTest/test.css">
<script>
"use strict";

/* import-globals-from file_ime_state_test_helper.js */
/* import-globals-from file_test_ime_state_on_input_type_change.js */

SimpleTest.waitForExplicitFinish();
SimpleTest.expectAssertions(6); // Hit in IMEStateManager::UpdateIMEState
SimpleTest.waitForFocus(async () => {
  const tipWrapper = new TIPWrapper(window);
  for (let srcIndex = 0; srcIndex < IMEStateOnInputTypeChangeTester.numberOfTests; srcIndex++) {
    const tester = new IMEStateOnInputTypeChangeTester(srcIndex);
    for (let destIndex = 0; destIndex < IMEStateOnInputTypeChangeTester.numberOfTests; destIndex++) {
      const expectedResultBefore = await tester.prepareToRun(destIndex, window, document.body);
      if (expectedResultBefore === false) {
        continue;
      }
      tester.checkBeforeRun(expectedResultBefore, tipWrapper);
      const expectedResult = await tester.run();
      tester.checkResult(expectedResultBefore, expectedResult);
      tipWrapper.clearFocusBlurNotifications();
      tester.clear();
    }
  }

  SimpleTest.finish();
});
</script>
</head>
<body>
</body>
</html>
