[link_data] Remove link_data integration test

Link passing between modules is being removed, and this test only
exercises the link-based parameter passing. There are other existing
tests which cover passing parameters back and forth between modules.

MF-6 #comment Remove link_data integration test
TESTED=N/A

Change-Id: I0bf32a2e00388e605c9fb1eb8ed485a289888d2a
diff --git a/packages/tests/modular_integration_tests b/packages/tests/modular_integration_tests
index 3a7987f..db78459 100644
--- a/packages/tests/modular_integration_tests
+++ b/packages/tests/modular_integration_tests
@@ -20,10 +20,6 @@
         "//peridot/tests/last_focus_time:last_focus_time_test_session_shell",
         "//peridot/tests/link_context_entities:link_context_entities_test_module",
         "//peridot/tests/link_context_entities:link_context_entities_test_session_shell",
-        "//peridot/tests/link_data:link_data_test_module0",
-        "//peridot/tests/link_data:link_data_test_module1",
-        "//peridot/tests/link_data:link_data_test_module2",
-        "//peridot/tests/link_data:link_data_test_session_shell",
         "//peridot/tests:modular_tests",
         "//peridot/tests/module_context:module_context_test_session_shell",
         "//peridot/tests/module_context:module_context_test_module",
diff --git a/tests/intents/intent_test_child_module.cc b/tests/intents/intent_test_child_module.cc
index 2623e78..709bb83 100644
--- a/tests/intents/intent_test_child_module.cc
+++ b/tests/intents/intent_test_child_module.cc
@@ -58,12 +58,6 @@
           Signal(kChildModuleHandledIntent + parameter_data);
         }
       }
-      if (parameter.data.is_link_name()) {
-        // The parent module expects parameters which are either link_name or
-        // link_path to be transformed before they are handled here. This
-        // notifies the parent of which link name was received.
-        Signal(kChildModuleHandledIntent + *parameter.data.link_name());
-      }
     }
   }
 
diff --git a/tests/intents/intent_test_parent_module.cc b/tests/intents/intent_test_parent_module.cc
index 05a2acd..10e819a 100644
--- a/tests/intents/intent_test_parent_module.cc
+++ b/tests/intents/intent_test_parent_module.cc
@@ -114,64 +114,10 @@
         kIntentParameterNameAlternate, json, child_module_second_.NewRequest());
     Await(kChildModuleHandledIntent + json, [this] {
       third_intent_was_handled_.Pass();
-      TestStartIntentWithLinkNameAndPath();
+      Signal(modular::testing::kTestShutdown);
     });
   }
 
-  // Tests that a link_name parameter and a link_path parameter both get
-  // modified by the framework to point to the appropriate link name when given
-  // to the intent handler.
-  TestPoint fourth_intent_was_handled_{"Fourth intent was handled"};
-  void TestStartIntentWithLinkNameAndPath() {
-    fuchsia::modular::Intent intent;
-    intent.handler = kChildModuleUrl;
-    intent.action = kChildModuleAction;
-    // The framework populates the intent handler's link namespace and provides
-    // each parameter in a link with the parameter name.
-    std::string first_parameter_name = "first_param";
-    std::string second_parameter_name = "second_param";
-
-    fuchsia::modular::IntentParameter intent_parameter;
-    intent_parameter.name = first_parameter_name;
-    intent_parameter.data = fuchsia::modular::IntentParameterData();
-    // The link name here should not be seen by the intent handler, but rather
-    // the handler will be given the link name in its own namespace, in this
-    // case first_parameter_name.
-    intent_parameter.data.set_link_name("does_not_matter");
-
-    fuchsia::modular::IntentParameter intent_parameter2;
-    intent_parameter2.name = second_parameter_name;
-    intent_parameter2.data = fuchsia::modular::IntentParameterData();
-    fuchsia::modular::LinkPath path;
-    // The link_path here should not be seen by the intent handler, but rather
-    // the handler will be given the link name in its own namespace, in this
-    // case first_parameter_name.
-    path.link_name = "does_not_matter_either";
-    std::vector<std::string> module_path;
-    module_path.push_back("nor_does_this_matter");
-    path.module_path = std::move(module_path);
-    intent_parameter2.data.set_link_path(std::move(path));
-
-    intent.parameters.push_back(std::move(intent_parameter));
-    intent.parameters.push_back(std::move(intent_parameter2));
-
-    module_host_->module_context()->AddModuleToStory(
-        kChildModuleName, std::move(intent), child_module_second_.NewRequest(),
-        nullptr, [](const fuchsia::modular::StartModuleStatus) {});
-
-    // Verify that the link_name parameter was delivered as a link named the
-    // same as the parameter.
-    Await(kChildModuleHandledIntent + first_parameter_name,
-          [this, second_parameter_name] {
-            // Verify that the link_path parameter was delivered as a link named
-            // the same as the parameter.
-            Await(kChildModuleHandledIntent + second_parameter_name, [this] {
-              fourth_intent_was_handled_.Pass();
-              Signal(modular::testing::kTestShutdown);
-            });
-          });
-  }
-
   // Called by ModuleDriver.
   TestPoint stopped_{"Parent module stopped"};
   void Terminate(const std::function<void()>& done) {
diff --git a/tests/link_data/BUILD.gn b/tests/link_data/BUILD.gn
deleted file mode 100644
index 3dcb92d..0000000
--- a/tests/link_data/BUILD.gn
+++ /dev/null
@@ -1,131 +0,0 @@
-# Copyright 2017 The Fuchsia 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("//peridot/build/executable_package.gni")
-
-source_set("defs") {
-  testonly = true
-
-  sources = [
-    "defs.h",
-  ]
-}
-
-executable_package("link_data_test_session_shell") {
-  deprecated_bare_package_url = "//build"
-
-  testonly = true
-
-  sources = [
-    "link_data_test_session_shell.cc",
-  ]
-
-  meta = [
-    {
-      path = "meta/link_data_test_session_shell.cmx"
-      dest = "link_data_test_session_shell.cmx"
-    },
-  ]
-
-
-  deps = [
-    ":defs",
-    "//garnet/public/fidl/fuchsia.testing.runner",
-    "//garnet/public/fidl/fuchsia.ui.viewsv1",
-    "//garnet/public/lib/fidl/cpp",
-    "//garnet/public/lib/fxl",
-    "//peridot/lib/common:names",
-    "//peridot/lib/rapidjson",
-    "//peridot/public/lib/integration_testing/cpp",
-    "//peridot/lib/testing:component_main",
-    "//peridot/lib/testing:session_shell_base",
-    "//peridot/public/fidl/fuchsia.modular",
-    "//peridot/public/fidl/fuchsia.modular.internal",
-    "//peridot/tests/common:defs",
-  ]
-}
-
-executable_package("link_data_test_module0") {
-  deprecated_bare_package_url = "//build"
-
-  testonly = true
-
-  sources = [
-    "link_data_test_module0.cc",
-  ]
-
-  meta = [
-    {
-      path = "meta/link_data_test_module0.cmx"
-      dest = "link_data_test_module0.cmx"
-    },
-  ]
-
-  deps = [
-    ":defs",
-    "//garnet/public/fidl/fuchsia.ui.viewsv1",
-    "//peridot/lib/rapidjson",
-    "//peridot/public/lib/integration_testing/cpp",
-    "//peridot/public/fidl/fuchsia.modular",
-    "//peridot/public/lib/app_driver/cpp:module_driver",
-    "//peridot/tests/common:defs",
-    "//zircon/public/lib/async-loop-cpp",
-  ]
-}
-
-executable_package("link_data_test_module1") {
-  deprecated_bare_package_url = "//build"
-
-  testonly = true
-
-  sources = [
-    "link_data_test_module1.cc",
-  ]
-
-  meta = [
-    {
-      path = "meta/link_data_test_module1.cmx"
-      dest = "link_data_test_module1.cmx"
-    },
-  ]
-
-  deps = [
-    ":defs",
-    "//garnet/public/fidl/fuchsia.ui.viewsv1",
-    "//peridot/lib/rapidjson",
-    "//peridot/public/lib/integration_testing/cpp",
-    "//peridot/public/fidl/fuchsia.modular",
-    "//peridot/public/lib/app_driver/cpp:module_driver",
-    "//peridot/tests/common:defs",
-    "//zircon/public/lib/async-loop-cpp",
-  ]
-}
-
-executable_package("link_data_test_module2") {
-  deprecated_bare_package_url = "//build"
-
-  testonly = true
-
-  sources = [
-    "link_data_test_module2.cc",
-  ]
-
-  meta = [
-    {
-      path = "meta/link_data_test_module2.cmx"
-      dest = "link_data_test_module2.cmx"
-    },
-  ]
-
-  deps = [
-    ":defs",
-    "//garnet/public/fidl/fuchsia.ui.viewsv1",
-    "//peridot/lib/rapidjson",
-    "//peridot/public/lib/integration_testing/cpp",
-    "//peridot/public/fidl/fuchsia.modular",
-    "//peridot/public/lib/app_driver/cpp:module_driver",
-    "//peridot/tests/common:defs",
-    "//zircon/public/lib/async-loop-cpp",
-  ]
-}
diff --git a/tests/link_data/README.md b/tests/link_data/README.md
deleted file mode 100644
index 51f75d3..0000000
--- a/tests/link_data/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# link_data integration test
-
-Tests the machinery that allows modules to coordinate through shared link data,
-and that these link data are persisted across story stop and resume.
-
-This test is invoked as a session shell from basemgr and executes a
-predefined sequence of steps, rather than to expose a UI to be driven by user
-interaction, as a session shell normally would.
-
-The session shell creates a story with Module0. Module0 in turn starts Module1 and
-Module2 and sets them up such that they can exchage data. Module1 and Module2
-alternate in incrementing a counter.
-
-The aspects examined by this test sequence are:
-
-1. Creating a story with initial data for the fist module.
-2. Verifying that the initial data are actually in the fuchsia::modular::Link presented to the
-   first module.
-3. Verifying that the initial data can be changed through the fuchsia::modular::Link interface.
-4. Observe the running module changing its own links.
-5. Stopping the story.
-6. Using the fuchsia::modular::StoryProvider API to verify that it shows no running stories.
-7. Starting the story again.
-8. Observing the running module resume modification of its own links at the
-   point it left off.
diff --git a/tests/link_data/defs.h b/tests/link_data/defs.h
deleted file mode 100644
index 0aeadd2..0000000
--- a/tests/link_data/defs.h
+++ /dev/null
@@ -1,40 +0,0 @@
-// Copyright 2018 The Fuchsia 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 PERIDOT_TESTS_LINK_DATA_DEFS_H_
-#define PERIDOT_TESTS_LINK_DATA_DEFS_H_
-
-namespace {
-
-// Package URLs and actions of the test components used here.
-constexpr char kModule0Url[] =
-    "fuchsia-pkg://fuchsia.com/link_data_test_module0#meta/link_data_test_module0.cmx";
-constexpr char kModule0Action[] = "action";
-constexpr char kModule0Name[] = "module0";
-
-constexpr char kModule1Url[] =
-    "fuchsia-pkg://fuchsia.com/link_data_test_module1#meta/link_data_test_module1.cmx";
-constexpr char kModule1Action[] = "action";
-constexpr char kModule1Name[] = "module1";
-
-constexpr char kModule2Url[] =
-    "fuchsia-pkg://fuchsia.com/link_data_test_module2#meta/link_data_test_module2.cmx";
-constexpr char kModule2Action[] = "action";
-constexpr char kModule2Name[] = "module2";
-
-// Names for links of Module0.
-constexpr char kModule0Link[] = "module0";
-constexpr char kModule1Link[] = "module1";
-constexpr char kModule2Link[] = "module2";
-
-// Names for properties inside link values.
-constexpr char kCount[] = "count";
-
-// Used as link values.
-constexpr char kRootJson0[] = "\"123450\"";
-constexpr char kRootJson1[] = "\"123451\"";
-
-}  // namespace
-
-#endif  // PERIDOT_TESTS_LINK_DATA_DEFS_H_
diff --git a/tests/link_data/link_data_test_module0.cc b/tests/link_data/link_data_test_module0.cc
deleted file mode 100644
index b3b50eb..0000000
--- a/tests/link_data/link_data_test_module0.cc
+++ /dev/null
@@ -1,154 +0,0 @@
-// Copyright 2016 The Fuchsia Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// A Module that serves as the recipe in the example story, i.e. that
-// creates other Modules in the story.
-
-#include <fuchsia/modular/cpp/fidl.h>
-#include <fuchsia/ui/viewsv1/cpp/fidl.h>
-#include <lib/app_driver/cpp/module_driver.h>
-#include <lib/async-loop/cpp/loop.h>
-#include <lib/fsl/vmo/strings.h>
-
-#include "peridot/lib/rapidjson/rapidjson.h"
-#include "peridot/public/lib/integration_testing/cpp/reporting.h"
-#include "peridot/public/lib/integration_testing/cpp/testing.h"
-#include "peridot/tests/common/defs.h"
-#include "peridot/tests/link_data/defs.h"
-
-using modular::testing::Signal;
-
-namespace {
-
-// Implementation of the fuchsia::modular::LinkWatcher service that forwards the
-// value of one fuchsia::modular::Link instance to a second
-// fuchsia::modular::Link instance whenever it changes.
-class LinkForwarder : fuchsia::modular::LinkWatcher {
- public:
-  LinkForwarder(fuchsia::modular::Link* const src,
-                fuchsia::modular::Link* const dst)
-      : src_binding_(this), src_(src), dst_(dst) {
-    src_->Watch(src_binding_.NewBinding());
-  }
-
-  // |fuchsia::modular::LinkWatcher|
-  void Notify(fuchsia::mem::Buffer json) override {
-    dst_->Set(nullptr, std::move(json));
-  }
-
- private:
-  fidl::Binding<fuchsia::modular::LinkWatcher> src_binding_;
-  fuchsia::modular::Link* const src_;
-  fuchsia::modular::Link* const dst_;
-
-  FXL_DISALLOW_COPY_AND_ASSIGN(LinkForwarder);
-};
-
-// Cf. README.md for what this test does and how.
-class TestModule {
- public:
-  TestModule(modular::ModuleHost* const module_host,
-             fidl::InterfaceRequest<
-                 fuchsia::ui::app::ViewProvider> /*view_provider_request*/)
-      : module_host_(module_host),
-        module_context_(module_host_->module_context()) {
-    modular::testing::Init(module_host->startup_context(), __FILE__);
-    Signal("module0_init");
-
-    Start();
-  }
-
-  TestModule(modular::ModuleHost* const module_host,
-             fidl::InterfaceRequest<
-                 fuchsia::ui::viewsv1::ViewProvider> /*view_provider_request*/)
-      : TestModule(
-            module_host,
-            fidl::InterfaceRequest<fuchsia::ui::app::ViewProvider>(nullptr)) {}
-
-  void Start() {
-    // Read kModule0Link link data, and send its value back to the test user
-    // shell to verify its expected value. Nb. the session shell does this only
-    // for the first invocation. Therefore, it would be wrong to verify this
-    // with a TestPoint.
-    module_context_->GetLink(kModule0Link, link_.NewRequest());
-    link_->Get(nullptr, [this](std::unique_ptr<fuchsia::mem::Buffer> content) {
-      std::string content_string;
-      FXL_CHECK(fsl::StringFromVmo(*content, &content_string));
-      Signal(std::string("module0_link") + ":" + content_string);
-
-      StartModules();
-    });
-  }
-
-  void StartModules() {
-    module_context_->GetLink(kModule1Link, module1_link_.NewRequest());
-    module_context_->GetLink(kModule2Link, module2_link_.NewRequest());
-
-    fuchsia::modular::IntentParameterData parameter_data;
-    parameter_data.set_link_name(kModule1Link);
-    fuchsia::modular::IntentParameter parameter;
-    parameter.name = kModule1Link;
-    parameter.data = std::move(parameter_data);
-
-    fuchsia::modular::Intent intent;
-    intent.handler = kModule1Url;
-    intent.action = kModule1Action;
-    intent.parameters.push_back(std::move(parameter));
-
-    module_context_->AddModuleToStory(
-        kModule1Name, std::move(intent), module1_.NewRequest(), nullptr,
-        [](fuchsia::modular::StartModuleStatus) {});
-
-    parameter_data = fuchsia::modular::IntentParameterData();
-    parameter_data.set_link_name(kModule2Link);
-    parameter = fuchsia::modular::IntentParameter();
-    parameter.name = kModule2Link;
-    parameter.data = std::move(parameter_data);
-
-    intent = fuchsia::modular::Intent();
-    intent.handler = kModule2Url;
-    intent.action = kModule2Action;
-    intent.parameters.push_back(std::move(parameter));
-
-    module_context_->AddModuleToStory(
-        kModule2Name, std::move(intent), module2_.NewRequest(), nullptr,
-        [](fuchsia::modular::StartModuleStatus) {});
-
-    connections_.emplace_back(
-        new LinkForwarder(module1_link_.get(), module2_link_.get()));
-  }
-
-  // Called from ModuleDriver.
-  void Terminate(const std::function<void()>& done) {
-    Signal("module1_stop");
-    modular::testing::Done(done);
-  }
-
- private:
-  modular::ModuleHost* const module_host_;
-  fuchsia::modular::ModuleContext* const module_context_;
-
-  fuchsia::modular::LinkPtr link_;
-
-  fuchsia::modular::ModuleControllerPtr module1_;
-  fuchsia::modular::LinkPtr module1_link_;
-
-  fuchsia::modular::ModuleControllerPtr module2_;
-  fuchsia::modular::LinkPtr module2_link_;
-
-  std::vector<std::unique_ptr<LinkForwarder>> connections_;
-
-  FXL_DISALLOW_COPY_AND_ASSIGN(TestModule);
-};
-
-}  // namespace
-
-int main(int /*argc*/, const char** /*argv*/) {
-  async::Loop loop(&kAsyncLoopConfigAttachToThread);
-  auto context = component::StartupContext::CreateFromStartupInfo();
-  modular::ModuleDriver<TestModule> driver(context.get(),
-                                           [&loop] { loop.Quit(); });
-  loop.Run();
-  return 0;
-}
diff --git a/tests/link_data/link_data_test_module1.cc b/tests/link_data/link_data_test_module1.cc
deleted file mode 100644
index e75362c..0000000
--- a/tests/link_data/link_data_test_module1.cc
+++ /dev/null
@@ -1,95 +0,0 @@
-// Copyright 2018 The Fuchsia 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 <fuchsia/modular/cpp/fidl.h>
-#include <fuchsia/ui/viewsv1/cpp/fidl.h>
-#include <lib/app_driver/cpp/module_driver.h>
-#include <lib/async-loop/cpp/loop.h>
-#include <lib/fsl/vmo/strings.h>
-
-#include "peridot/lib/rapidjson/rapidjson.h"
-#include "peridot/public/lib/integration_testing/cpp/reporting.h"
-#include "peridot/public/lib/integration_testing/cpp/testing.h"
-#include "peridot/tests/common/defs.h"
-#include "peridot/tests/link_data/defs.h"
-
-using modular::testing::Put;
-using modular::testing::Signal;
-
-namespace {
-
-// Cf. README.md for what this test does and how.
-class TestModule {
- public:
-  TestModule(modular::ModuleHost* const module_host,
-             fidl::InterfaceRequest<
-                 fuchsia::ui::app::ViewProvider> /*view_provider_request*/)
-      : module_host_(module_host) {
-    modular::testing::Init(module_host->startup_context(), __FILE__);
-    Signal("module1_init");
-
-    path_.push_back(kCount);
-
-    Start();
-  }
-
-  TestModule(modular::ModuleHost* const module_host,
-             fidl::InterfaceRequest<
-                 fuchsia::ui::viewsv1::ViewProvider> /*view_provider_request*/)
-      : TestModule(
-            module_host,
-            fidl::InterfaceRequest<fuchsia::ui::app::ViewProvider>(nullptr)) {}
-
-  void Start() {
-    module_host_->module_context()->GetLink(kModule1Link, link_.NewRequest());
-    Loop();
-  }
-
-  void Loop() {
-    link_->Get(
-        path_.Clone(), [this](std::unique_ptr<fuchsia::mem::Buffer> content) {
-          std::string content_string;
-          if (content) {
-            FXL_CHECK(fsl::StringFromVmo(*content, &content_string));
-          }
-
-          rapidjson::Document doc;
-          doc.Parse(content_string);
-          if (doc.IsInt()) {
-            doc.SetInt(doc.GetInt() + 1);
-          } else {
-            doc.SetInt(0);
-          }
-          fsl::SizedVmo vmo;
-          FXL_CHECK(fsl::VmoFromString(modular::JsonValueToString(doc), &vmo));
-          link_->Set(path_.Clone(), std::move(vmo).ToTransport());
-          link_->Sync([this] { Loop(); });
-        });
-  }
-
-  // Called from ModuleDriver.
-  void Terminate(const std::function<void()>& done) {
-    modular::testing::GetStore()->Put("module1_stop", "", [] {});
-    modular::testing::Done(done);
-  }
-
- private:
-  modular::ModuleHost* const module_host_;
-  fuchsia::modular::LinkPtr link_;
-
-  fidl::VectorPtr<std::string> path_;
-
-  FXL_DISALLOW_COPY_AND_ASSIGN(TestModule);
-};
-
-}  // namespace
-
-int main(int /*argc*/, const char** /*argv*/) {
-  async::Loop loop(&kAsyncLoopConfigAttachToThread);
-  auto context = component::StartupContext::CreateFromStartupInfo();
-  modular::ModuleDriver<TestModule> driver(context.get(),
-                                           [&loop] { loop.Quit(); });
-  loop.Run();
-  return 0;
-}
diff --git a/tests/link_data/link_data_test_module2.cc b/tests/link_data/link_data_test_module2.cc
deleted file mode 100644
index a9f303e..0000000
--- a/tests/link_data/link_data_test_module2.cc
+++ /dev/null
@@ -1,72 +0,0 @@
-// Copyright 2018 The Fuchsia 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 <fuchsia/modular/cpp/fidl.h>
-#include <fuchsia/ui/viewsv1/cpp/fidl.h>
-#include <lib/app_driver/cpp/module_driver.h>
-#include <lib/async-loop/cpp/loop.h>
-#include <lib/fsl/vmo/strings.h>
-
-#include "peridot/lib/rapidjson/rapidjson.h"
-#include "peridot/public/lib/integration_testing/cpp/reporting.h"
-#include "peridot/public/lib/integration_testing/cpp/testing.h"
-#include "peridot/tests/link_data/defs.h"
-
-namespace {
-
-// Cf. README.md for what this test does and how.
-class TestModule : fuchsia::modular::LinkWatcher {
- public:
-  TestModule(modular::ModuleHost* const module_host,
-             fidl::InterfaceRequest<
-                 fuchsia::ui::app::ViewProvider> /*view_provider_request*/)
-      : module_host_(module_host), link_watcher_binding_(this) {
-    modular::testing::Init(module_host->startup_context(), __FILE__);
-    modular::testing::GetStore()->Put("module2_init", "", [] {});
-    Start();
-  }
-
-  TestModule(modular::ModuleHost* const module_host,
-             fidl::InterfaceRequest<
-                 fuchsia::ui::viewsv1::ViewProvider> /*view_provider_request*/)
-      : TestModule(
-            module_host,
-            fidl::InterfaceRequest<fuchsia::ui::app::ViewProvider>(nullptr)) {}
-
-  void Start() {
-    module_host_->module_context()->GetLink(kModule2Link, link_.NewRequest());
-    link_->WatchAll(link_watcher_binding_.NewBinding());
-  }
-
-  // Called from ModuleDriver.
-  void Terminate(const std::function<void()>& done) {
-    modular::testing::GetStore()->Put("module2_stop", "", [] {});
-    modular::testing::Done(done);
-  }
-
- private:
-  // |fuchsia::modular::LinkWatcher|
-  void Notify(fuchsia::mem::Buffer value) override {
-    std::string json;
-    FXL_CHECK(fsl::StringFromVmo(value, &json));
-    modular::testing::GetStore()->Put("module2_link", json, [] {});
-  }
-
-  modular::ModuleHost* const module_host_;
-  fuchsia::modular::LinkPtr link_;
-  fidl::Binding<fuchsia::modular::LinkWatcher> link_watcher_binding_;
-
-  FXL_DISALLOW_COPY_AND_ASSIGN(TestModule);
-};
-
-}  // namespace
-
-int main(int /*argc*/, const char** /*argv*/) {
-  async::Loop loop(&kAsyncLoopConfigAttachToThread);
-  auto context = component::StartupContext::CreateFromStartupInfo();
-  modular::ModuleDriver<TestModule> driver(context.get(),
-                                           [&loop] { loop.Quit(); });
-  loop.Run();
-  return 0;
-}
diff --git a/tests/link_data/link_data_test_session_shell.cc b/tests/link_data/link_data_test_session_shell.cc
deleted file mode 100644
index addf960..0000000
--- a/tests/link_data/link_data_test_session_shell.cc
+++ /dev/null
@@ -1,263 +0,0 @@
-// Copyright 2017 The Fuchsia 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 <memory>
-#include <utility>
-
-#include <fuchsia/modular/internal/cpp/fidl.h>
-#include <fuchsia/ui/viewsv1token/cpp/fidl.h>
-#include <lib/async/cpp/task.h>
-#include <lib/async/default.h>
-#include <lib/component/cpp/startup_context.h>
-#include <lib/fidl/cpp/binding.h>
-#include <lib/fsl/vmo/strings.h>
-#include <lib/fxl/command_line.h>
-#include <lib/fxl/logging.h>
-#include <lib/fxl/macros.h>
-
-#include "peridot/lib/common/names.h"
-#include "peridot/lib/rapidjson/rapidjson.h"
-#include "peridot/lib/testing/component_main.h"
-#include "peridot/lib/testing/session_shell_base.h"
-#include "peridot/public/lib/integration_testing/cpp/reporting.h"
-#include "peridot/public/lib/integration_testing/cpp/testing.h"
-#include "peridot/tests/common/defs.h"
-#include "peridot/tests/link_data/defs.h"
-
-using modular::testing::Await;
-using modular::testing::Get;
-using modular::testing::Signal;
-using modular::testing::TestPoint;
-
-namespace {
-
-const char kStoryName[] = "story";
-
-// Cf. README.md for what this test does and how.
-class TestApp : public modular::testing::SessionShellBase {
- public:
-  explicit TestApp(component::StartupContext* const startup_context)
-      : SessionShellBase(startup_context) {
-    TestInit(__FILE__);
-
-    startup_context->ConnectToEnvironmentService(puppet_master_.NewRequest());
-
-    TestStory1();
-  }
-
-  ~TestApp() override = default;
-
- private:
-  TestPoint story1_create_{"Story1 Create"};
-
-  void TestStory1() {
-    std::vector<fuchsia::modular::StoryCommand> commands;
-    fuchsia::modular::AddMod add_mod;
-    add_mod.mod_name.push_back(kModule0Name);
-    add_mod.intent.action = kModule0Action;
-    add_mod.intent.handler = kModule0Url;
-
-    fuchsia::modular::IntentParameterData data;
-    fsl::SizedVmo vmo;
-    FXL_CHECK(fsl::VmoFromString(kRootJson0, &vmo));
-    data.set_json(std::move(vmo).ToTransport());
-    fuchsia::modular::IntentParameter intent_parameter;
-    intent_parameter.name = kModule0Link;
-    intent_parameter.data = std::move(data);
-    add_mod.intent.parameters.push_back(std::move(intent_parameter));
-
-    fuchsia::modular::StoryCommand command;
-    command.set_add_mod(std::move(add_mod));
-    commands.push_back(std::move(command));
-
-    puppet_master_->ControlStory(kStoryName, story_puppet_master_.NewRequest());
-    story_puppet_master_->Enqueue(std::move(commands));
-    story_puppet_master_->Execute(
-        [this](fuchsia::modular::ExecuteResult result) {
-          story1_create_.Pass();
-          TestStory1_GetController();
-        });
-  }
-
-  TestPoint story1_get_controller_{"Story1 GetController"};
-
-  void TestStory1_GetController() {
-    story_provider()->GetController(kStoryName, story_controller_.NewRequest());
-    story_controller_->GetInfo([this](fuchsia::modular::StoryInfo story_info,
-                                      fuchsia::modular::StoryState state) {
-      story1_get_controller_.Pass();
-      story_info_ = std::move(story_info);
-      TestStory1_GetModule0Link();
-    });
-  }
-
-  TestPoint story1_get_module0_link_{"Story1 Get Module0 link"};
-
-  void TestStory1_GetModule0Link() {
-    fidl::VectorPtr<std::string> module_path;
-    module_path.push_back(kModule0Name);
-    fuchsia::modular::LinkPath link_path = fuchsia::modular::LinkPath();
-    link_path.module_path = std::move(module_path);
-    link_path.link_name = kModule0Link;
-    story_controller_->GetLink(std::move(link_path),
-                               module0_link_.NewRequest());
-    module0_link_->Get(nullptr,
-                       [this](std::unique_ptr<fuchsia::mem::Buffer> value) {
-                         std::string json_string;
-                         FXL_CHECK(fsl::StringFromVmo(*value, &json_string));
-                         if (json_string == kRootJson0) {
-                           story1_get_module0_link_.Pass();
-                         } else {
-                           FXL_LOG(ERROR) << "GOT LINK " << json_string
-                                          << " EXPECTED " << kRootJson0;
-                         }
-                         TestStory1_SetModule0Link();
-                       });
-  }
-
-  TestPoint story1_set_module0_link_{"Story1 Set Module0 link"};
-
-  void TestStory1_SetModule0Link() {
-    fsl::SizedVmo data;
-    auto result = fsl::VmoFromString(kRootJson1, &data);
-    FXL_CHECK(result);
-
-    module0_link_->Set(nullptr, std::move(data).ToTransport());
-    module0_link_->Get(nullptr,
-                       [this](std::unique_ptr<fuchsia::mem::Buffer> value) {
-                         std::string json_string;
-                         FXL_CHECK(fsl::StringFromVmo(*value, &json_string));
-                         if (json_string == kRootJson1) {
-                           story1_set_module0_link_.Pass();
-                         } else {
-                           FXL_LOG(ERROR) << "GOT LINK " << json_string
-                                          << " EXPECTED " << kRootJson1;
-                         }
-                         TestStory1_Run();
-                       });
-  }
-
-  TestPoint story1_run_module0_link_{"Story1 Run: Module0 link"};
-
-  void TestStory1_Run() {
-    story_controller_->RequestStart();
-
-    Await(std::string("module0_link") + ":" + kRootJson1, [this] {
-      story1_run_module0_link_.Pass();
-      TestStory1_Wait();
-    });
-  }
-
-  void TestStory1_Wait() {
-    Get("module2_link", [this](fidl::StringPtr value) {
-      FXL_LOG(INFO) << "GET module2_link " << value;
-      rapidjson::Document doc;
-      doc.Parse(value);
-      if (!doc.IsObject() || !doc.HasMember(kCount) || !doc[kCount].IsInt() ||
-          doc[kCount].GetInt() < 10) {
-        TestStory1_Wait();
-        return;
-      }
-
-      TestStory1_Stop();
-    });
-  }
-
-  TestPoint story1_stop_{"Story1 Stop"};
-
-  void TestStory1_Stop() {
-    story_controller_->Stop([this] {
-      story1_stop_.Pass();
-      TestStory1_GetActiveModules();
-    });
-  }
-
-  TestPoint story1_get_active_modules_{"Story1 GetActiveModules()"};
-
-  void TestStory1_GetActiveModules() {
-    story_controller_->GetActiveModules(
-        [this](std::vector<fuchsia::modular::ModuleData> modules) {
-          if (modules.size() == 0) {
-            story1_get_active_modules_.Pass();
-          } else {
-            FXL_LOG(ERROR) << "ACTIVE MODULES " << modules.size()
-                           << " EXPECTED " << 0;
-          }
-          TestStory1_GetActiveLinks();
-        });
-  }
-
-  TestPoint story1_get_active_links_{"Story1 GetActiveLinks()"};
-
-  void TestStory1_GetActiveLinks() {
-    story_controller_->GetActiveLinks(
-        nullptr, [this](std::vector<fuchsia::modular::LinkPath> links) {
-          if (links.size() == 0) {
-            story1_get_active_links_.Pass();
-          } else {
-            FXL_LOG(ERROR) << "ACTIVE LINKS " << links.size() << " EXPECTED "
-                           << 0;
-          }
-          TestStory2_Run();
-        });
-  }
-
-  TestPoint story2_run_{"Story2 Run"};
-
-  void TestStory2_Run() {
-    story2_run_.Pass();
-
-    story_controller_->RequestStart();
-
-    TestStory2_Wait();
-  }
-
-  void TestStory2_Wait() {
-    Get("module2_link", [this](fidl::StringPtr value) {
-      FXL_LOG(INFO) << "GET module2_link " << value;
-      rapidjson::Document doc;
-      doc.Parse(value);
-      if (!doc.IsObject() || !doc.HasMember(kCount) || !doc[kCount].IsInt() ||
-          doc[kCount].GetInt() < 20) {
-        TestStory2_Wait();
-        return;
-      }
-
-      TestStory2_Stop();
-    });
-  }
-
-  TestPoint story2_stop_{"Story2 Stop"};
-
-  void TestStory2_Stop() {
-    story_controller_->Stop([this] {
-      story2_stop_.Pass();
-      TestStory2_Delete();
-    });
-  }
-
-  TestPoint story2_delete_{"Story2 Delete"};
-
-  void TestStory2_Delete() {
-    puppet_master_->DeleteStory(story_info_.id, [this] {
-      story2_delete_.Pass();
-      Signal(modular::testing::kTestShutdown);
-    });
-  }
-
-  fuchsia::modular::PuppetMasterPtr puppet_master_;
-  fuchsia::modular::StoryPuppetMasterPtr story_puppet_master_;
-  fuchsia::modular::StoryControllerPtr story_controller_;
-  fuchsia::modular::LinkPtr module0_link_;
-  fuchsia::modular::StoryInfo story_info_;
-
-  FXL_DISALLOW_COPY_AND_ASSIGN(TestApp);
-};
-
-}  // namespace
-
-int main(int argc, const char** argv) {
-  modular::testing::ComponentMain<TestApp>();
-  return 0;
-}
diff --git a/tests/link_data/meta/link_data_test_module0.cmx b/tests/link_data/meta/link_data_test_module0.cmx
deleted file mode 100644
index b34ea48..0000000
--- a/tests/link_data/meta/link_data_test_module0.cmx
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-    "program": {
-        "binary": "bin/app"
-    },
-    "sandbox": {
-        "services": [
-            "fuchsia.cobalt.LoggerFactory",
-            "fuchsia.modular.ModuleContext",
-            "fuchsia.modular.PuppetMaster",
-            "fuchsia.modular.SessionShellContext",
-            "fuchsia.net.LegacySocketProvider",
-            "fuchsia.sys.Environment",
-            "fuchsia.sys.Launcher",
-            "fuchsia.sys.Loader",
-            "fuchsia.testing.runner.TestRunner",
-            "fuchsia.testing.runner.TestRunnerStore",
-            "fuchsia.tracelink.Registry",
-            "fuchsia.ui.policy.Presenter",
-            "fuchsia.ui.scenic.Scenic",
-            "fuchsia.ui.viewsv1.ViewManager",
-            "fuchsia.ui.viewsv1.ViewSnapshot"
-        ]
-    }
-}
diff --git a/tests/link_data/meta/link_data_test_module1.cmx b/tests/link_data/meta/link_data_test_module1.cmx
deleted file mode 100644
index f303ccd..0000000
--- a/tests/link_data/meta/link_data_test_module1.cmx
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "program": {
-        "binary": "bin/app"
-    },
-    "sandbox": {
-        "services": [
-            "fuchsia.cobalt.LoggerFactory",
-            "fuchsia.modular.BasemgrMonitor",
-            "fuchsia.modular.ModuleContext",
-            "fuchsia.modular.PuppetMaster",
-            "fuchsia.modular.SessionShellContext",
-            "fuchsia.net.LegacySocketProvider",
-            "fuchsia.sys.Environment",
-            "fuchsia.sys.Launcher",
-            "fuchsia.sys.Loader",
-            "fuchsia.testing.runner.TestRunner",
-            "fuchsia.testing.runner.TestRunnerStore",
-            "fuchsia.tracelink.Registry",
-            "fuchsia.ui.policy.Presenter",
-            "fuchsia.ui.scenic.Scenic",
-            "fuchsia.ui.viewsv1.ViewManager",
-            "fuchsia.ui.viewsv1.ViewSnapshot"
-        ]
-    }
-}
diff --git a/tests/link_data/meta/link_data_test_module2.cmx b/tests/link_data/meta/link_data_test_module2.cmx
deleted file mode 100644
index f303ccd..0000000
--- a/tests/link_data/meta/link_data_test_module2.cmx
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "program": {
-        "binary": "bin/app"
-    },
-    "sandbox": {
-        "services": [
-            "fuchsia.cobalt.LoggerFactory",
-            "fuchsia.modular.BasemgrMonitor",
-            "fuchsia.modular.ModuleContext",
-            "fuchsia.modular.PuppetMaster",
-            "fuchsia.modular.SessionShellContext",
-            "fuchsia.net.LegacySocketProvider",
-            "fuchsia.sys.Environment",
-            "fuchsia.sys.Launcher",
-            "fuchsia.sys.Loader",
-            "fuchsia.testing.runner.TestRunner",
-            "fuchsia.testing.runner.TestRunnerStore",
-            "fuchsia.tracelink.Registry",
-            "fuchsia.ui.policy.Presenter",
-            "fuchsia.ui.scenic.Scenic",
-            "fuchsia.ui.viewsv1.ViewManager",
-            "fuchsia.ui.viewsv1.ViewSnapshot"
-        ]
-    }
-}
diff --git a/tests/link_data/meta/link_data_test_session_shell.cmx b/tests/link_data/meta/link_data_test_session_shell.cmx
deleted file mode 100644
index f303ccd..0000000
--- a/tests/link_data/meta/link_data_test_session_shell.cmx
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "program": {
-        "binary": "bin/app"
-    },
-    "sandbox": {
-        "services": [
-            "fuchsia.cobalt.LoggerFactory",
-            "fuchsia.modular.BasemgrMonitor",
-            "fuchsia.modular.ModuleContext",
-            "fuchsia.modular.PuppetMaster",
-            "fuchsia.modular.SessionShellContext",
-            "fuchsia.net.LegacySocketProvider",
-            "fuchsia.sys.Environment",
-            "fuchsia.sys.Launcher",
-            "fuchsia.sys.Loader",
-            "fuchsia.testing.runner.TestRunner",
-            "fuchsia.testing.runner.TestRunnerStore",
-            "fuchsia.tracelink.Registry",
-            "fuchsia.ui.policy.Presenter",
-            "fuchsia.ui.scenic.Scenic",
-            "fuchsia.ui.viewsv1.ViewManager",
-            "fuchsia.ui.viewsv1.ViewSnapshot"
-        ]
-    }
-}
diff --git a/tests/modular_tests.json b/tests/modular_tests.json
index ce6d657..3700677 100644
--- a/tests/modular_tests.json
+++ b/tests/modular_tests.json
@@ -67,19 +67,6 @@
       ]
     },
     {
-      "name": "link_data",
-      "exec": [
-        "fuchsia-pkg://fuchsia.com/basemgr#meta/basemgr.cmx",
-        "--test",
-        "--account_provider=fuchsia-pkg://fuchsia.com/dev_token_manager#meta/dev_token_manager.cmx",
-        "--base_shell=fuchsia-pkg://fuchsia.com/dev_base_shell#meta/dev_base_shell.cmx",
-        "--session_shell=fuchsia-pkg://fuchsia.com/link_data_test_session_shell#meta/link_data_test_session_shell.cmx",
-        "--session_shell_args=--use_memfs_for_ledger",
-        "--story_shell=fuchsia-pkg://fuchsia.com/dev_story_shell#meta/dev_story_shell.cmx",
-        "--sessionmgr_args=--use_memfs_for_ledger"
-      ]
-    },
-    {
       "name": "parent_child",
       "exec": [
         "fuchsia-pkg://fuchsia.com/basemgr#meta/basemgr.cmx",