// Copyright (c) 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.

#ifndef WIN8_TEST_TEST_REGISTRAR_CONSTANTS_H__
#define WIN8_TEST_TEST_REGISTRAR_CONSTANTS_H__

namespace win8 {
namespace test {

extern const char kTestAppUserModelId[];
extern const char kTestExeName[];
extern const char kTestExePath[];
extern const char kTestProgId[];

extern const wchar_t kDefaultTestAppUserModelId[];
extern const wchar_t kDefaultTestExeName[];
extern const wchar_t kDefaultTestExePath[];
extern const wchar_t kDefaultTestProgId[];

}  // namespace test
}  // namespace win8

#endif  // WIN8_TEST_TEST_REGISTRAR_CONSTANTS_H__
