# Copyright 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import json

from extensions_paths import CHROME_EXTENSIONS
from third_party.json_schema_compiler.json_parse import OrderedDict
from test_file_system import MoveAllTo, MoveTo


CANNED_CHANNELS = OrderedDict([
  ('trunk', 'trunk'),
  ('dev', 28),
  ('beta', 27),
  ('stable', 26)
])


CANNED_BRANCHES = OrderedDict([
  ('trunk', 'trunk'),
  (28, '1500'),
  (27, '1453'),
  (26, '1410'),
  (25, '1364'),
  (24, '1312'),
  (23, '1271'),
  (22, '1229'),
  (21, '1180'),
  (20, '1132'),
  (19, '1084'),
  (18, '1025'),
  (17, '963'),
  (16, '912'),
  (15, '874'),
  (14, '835'),
  (13, '782'),
  (12, '742'),
  (11, '696'),
  (10, '648'),
  ( 9, '597'),
  ( 8, '552'),
  ( 7, '544'),
  ( 6, '495'),
  ( 5, '396'),
])


CANNED_TEST_FILE_SYSTEM_DATA = MoveTo(CHROME_EXTENSIONS, {
  'api': {
    '_api_features.json': json.dumps({
      'ref_test': { 'dependencies': ['permission:ref_test'] },
      'tester': { 'dependencies': ['permission:tester', 'manifest:tester'] }
    }),
    '_manifest_features.json': '{}',
    '_permission_features.json': '{}'
  },
  'docs': {
    'templates': {
      'articles': {
        'test_article.html':
            '<h1>hi</h1>you<h2>first</h2><h3>inner</h3><h2>second</h2>'
      },
      'intros': {
        'test_intro.html':
            'you<h2>first</h2><h3>inner</h3><h2>second</h2>'
      },
      'json': {
        'api_availabilities.json': json.dumps({
          'trunk_api': {
            'channel': 'trunk'
          },
          'dev_api': {
            'channel': 'dev'
          },
          'beta_api': {
            'channel': 'beta'
          },
          'stable_api': {
            'channel': 'stable',
            'version': 20
          }
        }),
        'intro_tables.json': json.dumps({
          'tester': {
            'Permissions': [
              {
                'class': 'override',
                'text': '"tester"'
              },
              {
                'text': 'is an API for testing things.'
              }
            ],
            'Learn More': [
              {
                'link': 'https://tester.test.com/welcome.html',
                'text': 'Welcome!'
              }
            ]
          }
        }),
        'manifest.json': '{}',
        'permissions.json': '{}'
      },
      'private': {
        'intro_tables': {
          'trunk_message.html': 'available on trunk'
        },
        'table_of_contents.html': '<table-of-contents>',
      }
    }
  }
})


_TEST_WHATS_NEW_JSON = {
  "backgroundpages.to-be-non-persistent": {
    "type": "additionsToExistingApis",
    "description": "backgrounds to be non persistent",
    "version": 22
  },
  "chromeSetting.set-regular-only-scope": {
    "type": "additionsToExistingApis",
    "description": "ChromeSetting.set now has a regular_only scope.",
    "version": 21
  },
  "manifest-v1-deprecated": {
    "type": "manifestChanges",
    "description": "Manifest version 1 was deprecated in Chrome 18",
    "version": 20
  }
}


CANNED_API_FILE_SYSTEM_DATA = MoveAllTo(CHROME_EXTENSIONS, {
  'trunk': {
    'api': {
      '_api_features.json': json.dumps({
        'alarm': {
          'channel': 'stable'
        },
        'app.window': {
          'channel': 'stable'
        },
        'browserAction': {
          'channel': 'stable'
        },
        'contextMenus': {
          'channel': 'stable'
        },
        'events': {
          'channel': 'stable'
        },
        'extension': {
          'channel': 'stable'
        },
        'signedInDevices': {
          'channel': 'stable'
        },
        'systemInfo.cpu': {
          'channel': 'stable'
        },
        'systemInfo.stuff': {
          'channel': 'dev'
        }
      }),
      '_manifest_features.json': json.dumps({
        'history': {
          'channel': 'beta'
        },
        'notifications': {
          'channel': 'beta'
        },
        'page_action': {
          'channel': 'stable'
        },
        'runtime': {
          'channel': 'stable'
        },
        'storage': {
          'channel': 'beta'
        },
        'sync': {
          'channel': 'trunk'
        },
        'web_request': {
          'channel': 'stable'
        }
      }),
      '_permission_features.json': json.dumps({
        'alarms': {
          'channel': 'stable'
        },
        'bluetooth': {
          'channel': 'dev'
        },
        'bookmarks': {
          'channel': 'stable'
        },
        'cookies': {
          'channel': 'dev'
        },
        'declarativeContent': {
          'channel': 'trunk'
        },
        'declarativeWebRequest': [
          { 'channel': 'beta',
            'extension_types': ['extension']
          },
          { 'channel': 'stable',
            'extension_types': ['extension'],
            'whitelist': ['aaa']
          },
        ],
        'falseBetaAPI': {
          'channel': 'beta'
        },
        'systemInfo.display': {
          'channel': 'stable'
        },
        'trunkAPI': {
          'channel': 'trunk'
        }
      }),
      'alarm.json': json.dumps([{
        'namespace': 'alarm',
        'description': '<code>alarm</code>'
      }]),
      'app_window.json': json.dumps([{
        'namespace': 'app.window',
        'description': '<code>app.window</code>'
      }]),
      'browser_action.json': json.dumps([{
        'namespace': 'browserAction',
        'description': '<code>browserAction</code>'
      }]),
      'bluetooth.idl': '\n'.join(('//Copyleft Schmopyright',
                                  '',
                                  '//An IDL description, oh my!',
                                  'namespace bluetooth {',
                                  '  dictionary Socket {',
                                  '    long id;',
                                  '  };',
                                  '};')),
      'context_menus.json': json.dumps([{
        'namespace': 'contextMenus',
        'description': ''
      }]),
      'json_stable_api.json': json.dumps([{
        'namespace': 'jsonStableAPI',
        'description': 'An API with a predetermined availability.'
      }]),
      'idle.json': json.dumps([{'namespace': 'idle', 'description': ''}]),
      'input_ime.json': json.dumps([{
        'namespace': 'input.ime',
        'description': 'An API that has the potential to cause some trouble.'
      }]),
      'menus.json': json.dumps([{'namespace': 'menus', 'description': ''}]),
      'signed_in_devices.json': json.dumps([{
        'namespace': 'signedInDevices',
        'description': 'Another API that could cause some trouble.'
      }]),
      'system_info_stuff.json': json.dumps([{
        'namespace': 'systemInfo.stuff',
        'description': 'Yet another API that could wreck havoc...'
      }]),
      'tabs.json': json.dumps([{'namespace': 'tabs', 'description': ''}]),
      'windows.json': json.dumps([{'namespace': 'windows', 'description': ''}])
    },
    'docs': {
      'templates': {
        'json': {
          'api_availabilities.json': json.dumps({
            'jsonTrunkAPI': {
              'channel': 'trunk'
            },
            'jsonDevAPI': {
              'channel': 'dev'
            },
            'jsonBetaAPI': {
              'channel': 'beta'
            },
            'jsonStableAPI': {
              'channel': 'stable',
              'version': 20
            }
          }),
          'intro_tables.json': json.dumps({
            'test': [
              {
                'Permissions': 'probably none'
              }
            ]
          }),
          'manifest.json': '{}',
          'permissions.json': '{}',
          'whats_new.json': json.dumps(_TEST_WHATS_NEW_JSON)
        },
        'public': {
          'apps': {
            'alarm.html': 'alarm.html',
            'app_window.html': 'app_window.html',
            'contextMenus.html': 'contextMenus.html',
          },
          'extensions': {
            'alarm.html': 'alarm.html',
            'browserAction.html': 'browserAction.html',
            'contextMenus.html': 'contextMenus.html',
          }
        }
      }
    }
  },
  '1500': {
    'api': {
      '_api_features.json': json.dumps({
        'alarm': {
          'channel': 'stable'
        },
        'app.window': {
          'channel': 'stable'
        },
        'browserAction': {
          'channel': 'stable'
        },
        'events': {
          'channel': 'trunk'
        },
        'extension': {
          'channel': 'stable'
        },
        'systemInfo.cpu': {
          'channel': 'stable'
        },
        'systemInfo.stuff': {
          'channel': 'dev'
        }
      }),
      '_manifest_features.json': json.dumps({
        'contextMenus': {
          'channel': 'trunk'
        },
        'notifications': {
          'channel': 'beta'
        },
        'page_action': {
          'channel': 'stable'
        },
        'runtime': {
          'channel': 'stable'
        },
        'storage': {
          'channel': 'dev'
        },
        'sync': {
          'channel': 'trunk'
        },
        'system_info_display': {
          'channel': 'stable'
        },
        'web_request': {
          'channel': 'stable'
        }
      }),
      '_permission_features.json': json.dumps({
        'alarms': {
          'channel': 'stable'
        },
        'appsFirst': {
          'channel': 'stable',
          'extension_types': ['extension', 'platform_app']
        },
        'bluetooth': {
          'channel': 'dev'
        },
        'bookmarks': {
          'channel': 'stable'
        },
        'cookies': {
          'channel': 'dev'
        },
        'declarativeContent': {
          'channel': 'trunk'
        },
        'declarativeWebRequest': [
          { 'channel': 'beta' },
          { 'channel': 'stable', 'whitelist': ['aaa'] }
        ],
        'downloads': {
          'channel': 'beta'
        }
      }),
      'alarm.json': json.dumps([{
        'namespace': 'alarm',
        'description': '<code>alarm</code>'
      }]),
      'app_window.json': json.dumps([{
        'namespace': 'app.window',
        'description': '<code>app.window</code>'
      }]),
      'browser_action.json': json.dumps([{
        'namespace': 'browserAction',
        'description': '<code>browserAction</code>'
      }]),
      'idle.json': json.dumps([{'namespace': 'idle'}]),
      'input_ime.json': json.dumps([{'namespace': 'input.ime'}]),
      'menus.json': json.dumps([{'namespace': 'menus'}]),
      'tabs.json': json.dumps([{'namespace': 'tabs'}]),
      'windows.json': json.dumps([{'namespace': 'windows'}])
    },
    'docs': {
      'templates': {
        'json': {
          'api_availabilities.json': json.dumps({
            'jsonTrunkAPI': {
              'channel': 'trunk'
            },
            'jsonDevAPI': {
              'channel': 'dev'
            },
            'jsonBetaAPI': {
              'channel': 'beta'
            },
            'jsonStableAPI': {
              'channel': 'stable',
              'version': 20
            }
          }),
          'intro_tables.json': json.dumps({
            'test': [
              {
                'Permissions': 'probably none'
              }
            ]
          }),
          'manifest.json': '{}',
          'permissions.json': '{}',
          'whats_new.json': json.dumps(_TEST_WHATS_NEW_JSON)
        },
        'public': {
          'apps': {
            'alarm.html': 'alarm.html',
            'app_window.html': 'app_window.html',
          },
          'extensions': {
            'alarm.html': 'alarm.html',
            'browserAction.html': 'browserAction.html',
          }
        }
      }
    }
  },
  '1453': {
    'api': {
      '_api_features.json': json.dumps({
        'alarm': {
          'channel': 'stable'
        },
        'app.window': {
          'channel': 'stable'
        },
        'browserAction': {
          'channel': 'stable'
        },
        'events': {
          'channel': 'dev'
        },
        'extension': {
          'channel': 'stable'
        },
        'systemInfo.cpu': {
          'channel': 'stable'
        },
        'systemInfo.stuff': {
          'channel': 'dev'
        }
      }),
      '_manifest_features.json': json.dumps({
        'notifications': {
          'channel': 'dev'
        },
        'page_action': {
          'channel': 'stable'
        },
        'runtime': {
          'channel': 'stable'
        },
        'storage': {
          'channel': 'dev'
        },
        'system_info_display': {
          'channel': 'stable'
        },
        'web_request': {
          'channel': 'stable'
        }
      }),
      '_permission_features.json': json.dumps({
        'alarms': {
          'channel': 'stable'
        },
        'appsFirst': {
          'channel': 'stable',
          'extension_types': ['extension', 'platform_app']
        },
        'bluetooth': {
          'channel': 'dev'
        },
        'bookmarks': {
          'channel': 'stable'
        },
        'context_menus': {
          'channel': 'trunk'
        },
        'declarativeContent': {
          'channel': 'trunk'
        },
        'declarativeWebRequest': [
          { 'channel': 'beta' },
          { 'channel': 'stable', 'whitelist': ['aaa'] }
        ],
        'downloads': {
          'channel': 'dev'
        }
      }),
      'alarm.json': json.dumps([{
        'namespace': 'alarm',
        'description': '<code>alarm</code>'
      }]),
      'app_window.json': json.dumps([{
        'namespace': 'app.window',
        'description': '<code>app.window</code>'
      }]),
      'browser_action.json': json.dumps([{
        'namespace': 'browserAction',
        'description': '<code>browserAction</code>'
      }]),
      'idle.json': json.dumps([{'namespace': 'idle'}]),
      'input_ime.json': json.dumps([{'namespace': 'input.ime'}]),
      'menus.json': json.dumps([{'namespace': 'menus'}]),
      'tabs.json': json.dumps([{'namespace': 'tabs'}]),
      'windows.json': json.dumps([{'namespace': 'windows'}])
    },
    'docs': {
      'templates': {
        'json': {
          'api_availabilities.json': json.dumps({
            'jsonTrunkAPI': {
              'channel': 'trunk'
            },
            'jsonDevAPI': {
              'channel': 'dev'
            },
            'jsonBetaAPI': {
              'channel': 'beta'
            },
            'jsonStableAPI': {
              'channel': 'stable',
              'version': 20
            }
          }),
          'intro_tables.json': json.dumps({
            'test': [
              {
                'Permissions': 'probably none'
              }
            ]
          }),
          'manifest.json': '{}',
          'permissions.json': '{}',
          'whats_new.json': json.dumps(_TEST_WHATS_NEW_JSON)
        },
        'public': {
          'apps': {
            'alarm.html': 'alarm.html',
            'app_window.html': 'app_window.html',
          },
          'extensions': {
            'alarm.html': 'alarm.html',
            'browserAction.html': 'browserAction.html',
          }

        }
      }
    }
  },
  '1410': {
    'api': {
      '_manifest_features.json': json.dumps({
        'alarm': {
          'channel': 'stable'
        },
        'app.window': {
          'channel': 'stable'
        },
        'browserAction': {
          'channel': 'stable'
        },
        'events': {
          'channel': 'beta'
        },
        'notifications': {
          'channel': 'dev'
        },
        'page_action': {
          'channel': 'stable'
        },
        'runtime': {
          'channel': 'stable'
        },
        'web_request': {
          'channel': 'stable'
        }
      }),
      '_permission_features.json': json.dumps({
        'alarms': {
          'channel': 'stable'
        },
        'appsFirst': {
          'channel': 'stable',
          'extension_types': ['extension', 'platform_app']
        },
        'bluetooth': {
          'channel': 'dev'
        },
        'bookmarks': {
          'channel': 'stable'
        },
        'context_menus': {
          'channel': 'trunk'
        },
        'declarativeContent': {
          'channel': 'trunk'
        },
        'declarativeWebRequest': [
          { 'channel': 'beta' },
          { 'channel': 'stable', 'whitelist': ['aaa'] }
        ],
        'systemInfo.display': {
          'channel': 'stable'
        }
      }),
      'alarm.json': json.dumps([{
        'namespace': 'alarm',
        'description': '<code>alarm</code>'
      }]),
      'app_window.json': json.dumps([{
        'namespace': 'app.window',
        'description': '<code>app.window</code>'
      }]),
      'browser_action.json': json.dumps([{
        'namespace': 'browserAction',
        'description': '<code>browserAction</code>'
      }]),
      'idle.json': json.dumps([{'namespace': 'idle'}]),
      'input_ime.json': json.dumps([{'namespace': 'input.ime'}]),
      'menus.json': json.dumps([{'namespace': 'menus'}]),
      'tabs.json': json.dumps([{'namespace': 'tabs'}]),
      'windows.json': json.dumps([{'namespace': 'windows'}])
    }
  },
  '1364': {
    'api': {
      '_manifest_features.json': json.dumps({
        'page_action': {
          'channel': 'stable'
        },
        'runtime': {
          'channel': 'stable'
        }
      }),
      '_permission_features.json': json.dumps({
        'alarms': {
          'channel': 'stable'
        },
        'appsFirst': {
          'channel': 'stable',
          'extension_types': ['platform_app']
        },
        'bookmarks': {
          'channel': 'stable'
        },
        'systemInfo.display': {
          'channel': 'stable'
        },
        'webRequest': {
          'channel': 'stable'
        }
      }),
      'idle.json': json.dumps([{'namespace': 'idle'}]),
      'input_ime.json': json.dumps([{'namespace': 'input.ime'}]),
      'menus.json': json.dumps([{'namespace': 'menus'}]),
      'tabs.json': json.dumps([{'namespace': 'tabs'}]),
      'windows.json': json.dumps([{'namespace': 'windows'}])
    }
  },
  '1312': {
    'api': {
      '_manifest_features.json': json.dumps({
        'page_action': {
          'channel': 'stable'
        },
        'runtime': {
          'channel': 'stable'
        },
        'web_request': {
          'channel': 'stable'
        }
      }),
      '_permission_features.json': json.dumps({
        'alarms': {
          'channel': 'stable'
        },
        'bookmarks': {
          'channel': 'stable'
        },
        'systemInfo.display': {
          'channel': 'stable'
        }
      }),
      'idle.json': json.dumps([{'namespace': 'idle'}]),
      'input_ime.json': json.dumps([{'namespace': 'input.ime'}]),
      'menus.json': json.dumps([{'namespace': 'menus'}]),
      'tabs.json': json.dumps([{'namespace': 'tabs'}]),
      'windows.json': json.dumps([{'namespace': 'windows'}])
    }
  },
  '1271': {
    'api': {
      '_manifest_features.json': json.dumps({
        'page_action': {
          'channel': 'stable'
        },
        'runtime': {
          'channel': 'stable'
        },
        'system_info_display': {
          'channel': 'stable'
        }
      }),
      '_permission_features.json': json.dumps({
        'alarms': {
          'channel': 'beta'
        },
        'bookmarks': {
          'channel': 'stable'
        },
        'webRequest': {
          'channel': 'stable'
        }
      }),
      'alarms.idl': '//copy\n\n//desc\nnamespace alarms {}',
      'idle.json': json.dumps([{'namespace': 'idle'}]),
      'input_ime.json': json.dumps([{'namespace': 'input.ime'}]),
      'menus.json': json.dumps([{'namespace': 'menus'}]),
      'tabs.json': json.dumps([{'namespace': 'tabs'}]),
      'windows.json': json.dumps([{'namespace': 'windows'}])
    }
  },
  '1229': {
    'api': {
      '_manifest_features.json': json.dumps({
        'page_action': {
          'channel': 'stable'
        },
        'runtime': {
          'channel': 'stable'
        },
        'web_request': {
          'channel': 'stable'
        }
      }),
      '_permission_features.json': json.dumps({
        'bookmarks': {
          'channel': 'stable'
        },
        'systemInfo.display': {
          'channel': 'beta'
        }
      }),
      'alarms.idl': '//copy\n\n//desc\nnamespace alarms {}',
      'idle.json': json.dumps([{'namespace': 'idle'}]),
      'input_ime.json': json.dumps([{'namespace': 'input.ime'}]),
      'menus.json': json.dumps([{'namespace': 'menus'}]),
      'tabs.json': json.dumps([{'namespace': 'tabs'}]),
    }
  },
  '1180': {
    'api': {
      '_manifest_features.json': json.dumps({
        'page_action': {
          'channel': 'stable'
        },
        'runtime': {
          'channel': 'stable'
        }
      }),
      '_permission_features.json': json.dumps({
        'bookmarks': {
          'channel': 'stable'
        },
        'webRequest': {
          'channel': 'stable'
        }
      }),
      'bookmarks.json': json.dumps([{'namespace': 'bookmarks'}]),
      'idle.json': json.dumps([{'namespace': 'idle'}]),
      'input_ime.json': json.dumps([{'namespace': 'input.ime'}]),
      'menus.json': json.dumps([{'namespace': 'menus'}]),
      'tabs.json': json.dumps([{'namespace': 'tabs'}]),
    }
  },
  '1132': {
    'api': {
      '_manifest_features.json': json.dumps({
        'bookmarks': {
          'channel': 'trunk'
        },
        'page_action': {
          'channel': 'stable'
        }
      }),
      '_permission_features.json': json.dumps({
        'webRequest': {
          'channel': 'stable'
        }
      }),
      'bookmarks.json': json.dumps([{'namespace': 'bookmarks'}]),
      'idle.json': json.dumps([{'namespace': 'idle'}]),
      'input.ime.json': json.dumps([{'namespace': 'input.ime'}]),
      'menus.json': json.dumps([{'namespace': 'menus'}]),
      'tabs.json': json.dumps([{'namespace': 'tabs'}]),
    }
  },
  '1084': {
    'api': {
      '_manifest_features.json': json.dumps({
        'contents': 'nothing of interest here,really'
      }),
      'bookmarks.json': json.dumps([{'namespace': 'bookmarks'}]),
      'idle.json': json.dumps([{'namespace': 'idle'}]),
      'input.ime.json': json.dumps([{'namespace': 'input.ime'}]),
      'menus.json': json.dumps([{'namespace': 'menus'}]),
      'tabs.json': json.dumps([{'namespace': 'tabs'}]),
      'pageAction.json': json.dumps([{'namespace': 'pageAction'}]),
      'webRequest.json': json.dumps([{'namespace': 'webRequest'}])
    }
  },
  '1025': {
    'api': {
      'bookmarks.json': json.dumps([{'namespace': 'bookmarks'}]),
      'idle.json': json.dumps([{'namespace': 'idle'}]),
      'input.ime.json': json.dumps([{'namespace': 'input.ime'}]),
      'menus.json': json.dumps([{'namespace': 'menus'}]),
      'tabs.json': json.dumps([{'namespace': 'tabs'}]),
      'pageAction.json': json.dumps([{'namespace': 'pageAction'}]),
      'webRequest.json': json.dumps([{'namespace': 'webRequest'}])
    }
  },
  '963': {
    'api': {
      'extension_api.json': json.dumps([
        {
          'namespace': 'idle'
        },
        {
          'namespace': 'menus'
        },
        {
          'namespace': 'pageAction'
        },
        {
          'namespace': 'webRequest'
        }
      ])
    }
  },
  '912': {
    'api': {
      'extension_api.json': json.dumps([
        {
          'namespace': 'idle'
        },
        {
          'namespace': 'menus'
        },
        {
          'namespace': 'pageAction'
        },
        {
          'namespace': 'experimental.webRequest'
        }
      ])
    }
  },
  '874': {
    'api': {
      'extension_api.json': json.dumps([
        {
          'namespace': 'idle'
        },
        {
          'namespace': 'menus'
        },
        {
          'namespace': 'pageAction'
        }
      ])
    }
  },
  '835': {
    'api': {
      'extension_api.json': json.dumps([
        {
          'namespace': 'idle'
        },
        {
          'namespace': 'menus'
        },
        {
          'namespace': 'pageAction'
        }
      ])
    }
  },
  '782': {
    'api': {
      'extension_api.json': json.dumps([
        {
          'namespace': 'idle'
        },
        {
          'namespace': 'menus'
        },
        {
          'namespace': 'pageAction'
        }
      ])
    }
  },
  '742': {
    'api': {
      'extension_api.json': json.dumps([
        {
          'namespace': 'idle'
        },
        {
          'namespace': 'menus'
        },
        {
          'namespace': 'pageAction'
        }
      ])
    }
  },
  '696': {
    'api': {
      'extension_api.json': json.dumps([
        {
          'namespace': 'idle'
        },
        {
          'namespace': 'menus'
        },
        {
          'namespace': 'pageAction'
        }
      ])
    }
  },
  '648': {
    'api': {
      'extension_api.json': json.dumps([
        {
          'namespace': 'idle'
        },
        {
          'namespace': 'menus'
        },
        {
          'namespace': 'pageAction'
        }
      ])
    }
  },
  '597': {
    'api': {
      'extension_api.json': json.dumps([
        {
          'namespace': 'idle'
        },
        {
          'namespace': 'menus'
        },
        {
          'namespace': 'pageAction'
        }
      ])
    }
  },
  '552': {
    'api': {
      'extension_api.json': json.dumps([
        {
          'namespace': 'idle'
        },
        {
          'namespace': 'menus'
        },
        {
          'namespace': 'pageAction'
        }
      ])
    }
  },
  '544': {
    'api': {
      'extension_api.json': json.dumps([
        {
          'namespace': 'idle'
        },
        {
          'namespace': 'menus'
        }
      ])
    }
  },
  '495': {
    'api': {
      'extension_api.json': json.dumps([
        {
          'namespace': 'idle'
        },
        {
          'namespace': 'menus'
        }
      ])
    }
  },
  '396': {
    'api': {
      'extension_api.json': json.dumps([
        {
          'namespace': 'idle'
        },
        {
          'namespace': 'experimental.menus'
        }
      ])
    }
  }
})
