"use strict";

add_task(async function testBackgroundWindowProperties() {
  let extension = ExtensionTestUtils.loadExtension({
    background() {
      let expectedValues = {
        screenX: 0,
        screenY: 0,
        outerWidth: 0,
        outerHeight: 0,
      };

      for (let k in window) {
        try {
          if (k in expectedValues) {
            browser.test.assertEq(
              expectedValues[k],
              window[k],
              `should return the expected value for window property: ${k}`
            );
          } else {
            void window[k];
          }
        } catch (e) {
          browser.test.assertEq(
            null,
            e,
            `unexpected exception accessing window property: ${k}`
          );
        }
      }

      browser.test.notifyPass("background.testWindowProperties.done");
    },
  });
  await extension.startup();
  await extension.awaitFinish("background.testWindowProperties.done");
  await extension.unload();
});
