public void IsPepperPluginProcessTest()
        {
            PluginDebuggerVS_Accessor target = new PluginDebuggerVS_Accessor(dte_, properties_);

            string identifierFlagTarget =
                string.Format(Strings.PepperProcessPluginFlagFormat, target.pluginAssembly_);
            string goodFlags = string.Concat(Strings.ChromeRendererFlag, ' ', identifierFlagTarget);

            ProcessInfo badProc1 = new ProcessInfo(
                1, 1, string.Empty, goodFlags, Strings.NaClProcessName);
            ProcessInfo badProc2 = new ProcessInfo(
                1, 1, string.Empty, Strings.NaClLoaderFlag, Strings.ChromeProcessName);
            ProcessInfo badProc3 = new ProcessInfo(
                1, 1, string.Empty, Strings.ChromeRendererFlag, Strings.ChromeProcessName);
            ProcessInfo badProc4 = new ProcessInfo(
                1, 1, string.Empty, identifierFlagTarget, Strings.ChromeProcessName);
            ProcessInfo goodProc = new ProcessInfo(
                1, 1, string.Empty, goodFlags, Strings.ChromeProcessName);

            Assert.IsTrue(target.IsPluginProcess(goodProc, string.Empty));
            Assert.IsFalse(target.IsPluginProcess(badProc1, string.Empty));
            Assert.IsFalse(target.IsPluginProcess(badProc2, string.Empty));
            Assert.IsFalse(target.IsPluginProcess(badProc3, string.Empty));
            Assert.IsFalse(target.IsPluginProcess(badProc4, string.Empty));
        }
        public void AttachVSDebuggerTest()
        {
            using (System.Diagnostics.Process dummyProc = TestUtilities.StartProcessForKilling(
                       "DummyProc", 20))
            {
                try
                {
                    PluginDebuggerVS_Accessor target = new PluginDebuggerVS_Accessor(dte_, properties_);

                    var pluginFoundArgs = new NativeClientVSAddIn.PluginDebuggerBase.PluginFoundEventArgs(
                        (uint)dummyProc.Id);
                    target.Attach(null, pluginFoundArgs);

                    bool isBeingDebugged = false;
                    foreach (EnvDTE.Process proc in dte_.Debugger.DebuggedProcesses)
                    {
                        if (proc.ProcessID == dummyProc.Id)
                        {
                            isBeingDebugged = true;
                        }
                    }

                    Assert.IsTrue(isBeingDebugged, "Visual Studio debugger did not attach");
                }
                finally
                {
                    if (dummyProc != null && !dummyProc.HasExited)
                    {
                        dummyProc.Kill();
                        dummyProc.Dispose();
                    }
                }
            }
        }
    public void IsPepperPluginProcessTest()
    {
      PluginDebuggerVS_Accessor target = new PluginDebuggerVS_Accessor(dte_, properties_);

      string identifierFlagTarget =
          string.Format(Strings.PepperProcessPluginFlagFormat, target.pluginAssembly_);
      string goodFlags = string.Concat(Strings.ChromeRendererFlag, ' ', identifierFlagTarget);

      ProcessInfo badProc1 = new ProcessInfo(
          1, 1, string.Empty, goodFlags, Strings.NaClProcessName);
      ProcessInfo badProc2 = new ProcessInfo(
          1, 1, string.Empty, Strings.NaClLoaderFlag, Strings.ChromeProcessName);
      ProcessInfo badProc3 = new ProcessInfo(
          1, 1, string.Empty, Strings.ChromeRendererFlag, Strings.ChromeProcessName);
      ProcessInfo badProc4 = new ProcessInfo(
          1, 1, string.Empty, identifierFlagTarget, Strings.ChromeProcessName);
      ProcessInfo goodProc = new ProcessInfo(
          1, 1, string.Empty, goodFlags, Strings.ChromeProcessName);

      Assert.IsTrue(target.IsPluginProcess(goodProc, string.Empty));
      Assert.IsFalse(target.IsPluginProcess(badProc1, string.Empty));
      Assert.IsFalse(target.IsPluginProcess(badProc2, string.Empty));
      Assert.IsFalse(target.IsPluginProcess(badProc3, string.Empty));
      Assert.IsFalse(target.IsPluginProcess(badProc4, string.Empty));
    }
    public void AttachVSDebuggerTest()
    {
      using (System.Diagnostics.Process dummyProc = TestUtilities.StartProcessForKilling(
          "DummyProc", 20))
      {
        try
        {
          PluginDebuggerVS_Accessor target = new PluginDebuggerVS_Accessor(dte_, properties_);

          var pluginFoundArgs = new NativeClientVSAddIn.PluginDebuggerBase.PluginFoundEventArgs(
              (uint)dummyProc.Id);
          target.Attach(null, pluginFoundArgs);

          bool isBeingDebugged = false;
          foreach (EnvDTE.Process proc in dte_.Debugger.DebuggedProcesses)
          {
            if (proc.ProcessID == dummyProc.Id)
            {
              isBeingDebugged = true;
            }
          }

          Assert.IsTrue(isBeingDebugged, "Visual Studio debugger did not attach");
        }
        finally
        {
          if (dummyProc != null && !dummyProc.HasExited)
          {
            dummyProc.Kill();
            dummyProc.Dispose();
          }
        }
      }
    }