Create Tether Chrome OS component and add a skeleton Initializer class.

Review-Url: https://codereview.chromium.org/2545923005
Cr-Commit-Position: refs/heads/master@{#436184}
diff --git a/BUILD.gn b/BUILD.gn
index 2892e385c..48b7396 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -481,6 +481,7 @@
   if (is_chromeos) {
     deps += [
       "//chromeos:chromeos_unittests",
+      "//chromeos/components:chromeos_components_unittests",
       "//components/session_manager/core",
       "//ui/arc:ui_arc_unittests",
       "//ui/chromeos:ui_chromeos_unittests",
diff --git a/chromeos/components/BUILD.gn b/chromeos/components/BUILD.gn
new file mode 100644
index 0000000..636f4bc
--- /dev/null
+++ b/chromeos/components/BUILD.gn
@@ -0,0 +1,21 @@
+# Copyright 2016 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("//testing/test.gni")
+
+assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+
+# To add a unit test to this target, make a "unit_test" source_set in your
+# component and add a reference here.
+test("chromeos_components_unittests") {
+  sources = [
+    "run_all_unittests.cc",
+  ]
+
+  deps = [
+    "//base",
+    "//base/test:test_support",
+    "//chromeos/components/tether:unit_tests",
+  ]
+}
diff --git a/chromeos/components/run_all_unittests.cc b/chromeos/components/run_all_unittests.cc
new file mode 100644
index 0000000..064a9bc
--- /dev/null
+++ b/chromeos/components/run_all_unittests.cc
@@ -0,0 +1,14 @@
+// Copyright 2014 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.
+
+#include "base/bind.h"
+#include "base/test/launcher/unit_test_launcher.h"
+#include "base/test/test_suite.h"
+
+int main(int argc, char** argv) {
+  base::TestSuite test_suite(argc, argv);
+  return base::LaunchUnitTests(
+      argc, argv,
+      base::Bind(&base::TestSuite::Run, base::Unretained(&test_suite)));
+}
diff --git a/chromeos/components/tether/BUILD.gn b/chromeos/components/tether/BUILD.gn
new file mode 100644
index 0000000..5ea6be4
--- /dev/null
+++ b/chromeos/components/tether/BUILD.gn
@@ -0,0 +1,44 @@
+# Copyright 2016 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.
+
+assert(is_chromeos, "Non-ChromeOS builds cannot depend on //chromeos")
+
+static_library("tether") {
+  sources = [
+    "initializer.cc",
+    "initializer.h",
+  ]
+
+  deps = [
+    "//base",
+  ]
+}
+
+static_library("test_support") {
+  testonly = true
+
+  sources = []
+
+  public_deps = [
+    ":tether",
+  ]
+
+  deps = [
+    "//base",
+    "//testing/gmock",
+  ]
+}
+
+source_set("unit_tests") {
+  testonly = true
+
+  sources = []
+
+  deps = [
+    ":test_support",
+    ":tether",
+    "//base/test:test_support",
+    "//testing/gtest",
+  ]
+}
diff --git a/chromeos/components/tether/OWNERS b/chromeos/components/tether/OWNERS
new file mode 100644
index 0000000..07d43fee
--- /dev/null
+++ b/chromeos/components/tether/OWNERS
@@ -0,0 +1,3 @@
[email protected]
[email protected]
[email protected]
diff --git a/chromeos/components/tether/initializer.cc b/chromeos/components/tether/initializer.cc
new file mode 100644
index 0000000..7cb779d
--- /dev/null
+++ b/chromeos/components/tether/initializer.cc
@@ -0,0 +1,17 @@
+// Copyright 2016 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.
+
+#include "chromeos/components/tether/initializer.h"
+
+namespace chromeos {
+
+namespace tether {
+
+Initializer::Initializer() {}
+
+Initializer::~Initializer() {}
+
+}  // namespace tether
+
+}  // namespace chromeos
diff --git a/chromeos/components/tether/initializer.h b/chromeos/components/tether/initializer.h
new file mode 100644
index 0000000..d0e4a1f
--- /dev/null
+++ b/chromeos/components/tether/initializer.h
@@ -0,0 +1,29 @@
+// Copyright 2016 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 CHROMEOS_COMPONENTS_TETHER_INITIALIZER_H_
+#define CHROMEOS_COMPONENTS_TETHER_INITIALIZER_H_
+
+#include "base/macros.h"
+
+namespace chromeos {
+
+namespace tether {
+
+// Initializes the Tether Chrome OS component.
+// TODO(khorimoto): Implement.
+class Initializer {
+ public:
+  Initializer();
+  ~Initializer();
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(Initializer);
+};
+
+}  // namespace tether
+
+}  // namespace chromeos
+
+#endif  // CHROMEOS_COMPONENTS_TETHER_INITIALIZER_H_