summaryrefslogtreecommitdiffstats
path: root/browser/components/extensions/test/xpcshell/test_ext_manifest_commands.js
blob: 4de7afe01ab67f3c7ff4ba6b9758ffbbcb7ae5b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set sts=2 sw=2 et tw=80: */
"use strict";


add_task(function* test_manifest_commands() {
  let normalized = yield ExtensionTestUtils.normalizeManifest({
    "commands": {
      "toggle-feature": {
        "suggested_key": {"default": "Shifty+Y"},
        "description": "Send a 'toggle-feature' event to the extension",
      },
    },
  });

  let expectedError = (
    String.raw`commands.toggle-feature.suggested_key.default: Value must either: ` +
    String.raw`match the pattern /^\s*(Alt|Ctrl|Command|MacCtrl)\s*\+\s*(Shift\s*\+\s*)?([A-Z0-9]|Comma|Period|Home|End|PageUp|PageDown|Space|Insert|Delete|Up|Down|Left|Right)\s*$/, or ` +
    String.raw`match the pattern /^(MediaNextTrack|MediaPlayPause|MediaPrevTrack|MediaStop)$/`
  );

  ok(normalized.error.includes(expectedError),
     `The manifest error ${JSON.stringify(normalized.error)} must contain ${JSON.stringify(expectedError)}`);
});