Index: visual_studio/NativeClientVSAddIn/UnitTests/PropertyManagerTest.cs |
diff --git a/visual_studio/NativeClientVSAddIn/UnitTests/PropertyManagerTest.cs b/visual_studio/NativeClientVSAddIn/UnitTests/PropertyManagerTest.cs |
index 05b129700cc8c124f8078a2c8a148f60d4227114..4c701ad524c7cfde6dd14f61db408909809dc17b 100644 |
--- a/visual_studio/NativeClientVSAddIn/UnitTests/PropertyManagerTest.cs |
+++ b/visual_studio/NativeClientVSAddIn/UnitTests/PropertyManagerTest.cs |
@@ -1,237 +1,237 @@ |
-// Copyright (c) 2012 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. |
- |
-namespace UnitTests |
-{ |
- using System; |
- using System.IO; |
- |
- using EnvDTE; |
- using EnvDTE80; |
- using Microsoft.VisualStudio.TestTools.UnitTesting; |
- |
- using NativeClientVSAddIn; |
- |
- /// <summary> |
- /// This is a test class for PropertyManagerTest and is intended |
- /// to contain all PropertyManager Unit Tests |
- /// </summary> |
- [TestClass] |
- public class PropertyManagerTest |
- { |
- /// <summary> |
- /// This holds the path to the NaCl solution used in these tests. |
- /// The NaCl solution is a valid nacl/pepper plug-in VS solution. |
- /// It is copied into the testing deployment directory and opened in some tests. |
- /// Because unit-tests run in any order, the solution should not be written to |
- /// in any tests. |
- /// </summary> |
- private static string naclSolution; |
- |
- /// <summary> |
- /// The main visual studio object. |
- /// </summary> |
- private DTE2 dte_; |
- |
- /// <summary> |
- /// Gets or sets the test context which provides information about, |
- /// and functionality for the current test run. |
- /// </summary> |
- public TestContext TestContext { get; set; } |
- |
- /// <summary> |
- /// This is run one time before any test methods are called. Here we set-up a test-copy of a |
- /// new NaCl solution for use in the tests. |
- /// </summary> |
- /// <param name="testContext">Holds information about the current test run</param> |
- [ClassInitialize] |
- public static void ClassSetup(TestContext testContext) |
- { |
- DTE2 dte = TestUtilities.StartVisualStudioInstance(); |
- try |
- { |
- naclSolution = TestUtilities.CreateBlankValidNaClSolution( |
- dte, |
- "PropertyManagerTest", |
- NativeClientVSAddIn.Strings.PepperPlatformName, |
- NativeClientVSAddIn.Strings.NaClPlatformName, |
- testContext); |
- } |
- finally |
- { |
- TestUtilities.CleanUpVisualStudioInstance(dte); |
- } |
- } |
- |
- /// <summary> |
- /// This is run before each test to create test resources. |
- /// </summary> |
- [TestInitialize] |
- public void TestSetup() |
- { |
- dte_ = TestUtilities.StartVisualStudioInstance(); |
- try |
- { |
- TestUtilities.AssertAddinLoaded(dte_, NativeClientVSAddIn.Strings.AddInName); |
- } |
- catch |
- { |
- TestUtilities.CleanUpVisualStudioInstance(dte_); |
- throw; |
- } |
- } |
- |
- /// <summary> |
- /// This is run after each test to clean up things created in TestSetup(). |
- /// </summary> |
- [TestCleanup] |
- public void TestCleanup() |
- { |
- TestUtilities.CleanUpVisualStudioInstance(dte_); |
- } |
- |
- /// <summary> |
- /// Tests SetTarget() and SetTargetToActive(). |
- /// </summary> |
- [TestMethod] |
- public void SetTargetTest() |
- { |
- string expectedSDKRootDir = |
- Environment.GetEnvironmentVariable(Strings.SDKPathEnvironmentVariable); |
- Assert.IsNotNull(expectedSDKRootDir, "SDK Path environment variable not set!"); |
- |
- PropertyManager target = new PropertyManager(); |
- dte_.Solution.Open(naclSolution); |
- |
- Project naclProject = dte_.Solution.Projects.Item(TestUtilities.BlankNaClProjectUniqueName); |
- Project notNacl = dte_.Solution.Projects.Item(TestUtilities.NotNaClProjectUniqueName); |
- |
- // Invalid project. |
- target.SetTarget(notNacl, Strings.PepperPlatformName, "Debug"); |
- Assert.AreEqual( |
- PropertyManager.ProjectPlatformType.Other, |
- target.ProjectPlatform, |
- "SetTarget should not succeed with non-nacl/pepper project."); |
- |
- // Try valid project with different platforms. |
- target.SetTarget(naclProject, Strings.NaClPlatformName, "Debug"); |
- Assert.AreEqual( |
- PropertyManager.ProjectPlatformType.NaCl, |
- target.ProjectPlatform, |
- "SetTarget did not succeed with nacl platform on valid project."); |
- Assert.AreEqual(expectedSDKRootDir, target.SDKRootDirectory, "SDK Root incorrect."); |
- |
- target.SetTarget(naclProject, "Win32", "Debug"); |
- Assert.AreEqual( |
- PropertyManager.ProjectPlatformType.Other, |
- target.ProjectPlatform, |
- "SetTarget did not set 'other' platform on when Win32 platform of valid project."); |
- |
- target.SetTarget(naclProject, Strings.PepperPlatformName, "Debug"); |
- Assert.AreEqual( |
- PropertyManager.ProjectPlatformType.Pepper, |
- target.ProjectPlatform, |
- "SetTarget did not succeed with pepper platform on valid project."); |
- Assert.AreEqual(expectedSDKRootDir, target.SDKRootDirectory, "SDK Root incorrect."); |
- |
- // Setting the start-up project to a non-cpp project should make loading fail. |
- object[] badStartupProj = { TestUtilities.NotNaClProjectUniqueName }; |
- dte_.Solution.SolutionBuild.StartupProjects = badStartupProj; |
- target.SetTargetToActive(dte_); |
- Assert.AreEqual( |
- PropertyManager.ProjectPlatformType.Other, |
- target.ProjectPlatform, |
- "SetTargetToActive should not succeed with non-nacl/pepper project."); |
- |
- // Setting the start-up project to correct C++ project, but also setting the platform |
- // to non-nacl/pepper should make loading fail. |
- object[] startupProj = { TestUtilities.BlankNaClProjectUniqueName }; |
- dte_.Solution.SolutionBuild.StartupProjects = startupProj; |
- TestUtilities.SetSolutionConfiguration( |
- dte_, TestUtilities.BlankNaClProjectUniqueName, "Debug", "Win32"); |
- target.SetTargetToActive(dte_); |
- Assert.AreEqual( |
- PropertyManager.ProjectPlatformType.Other, |
- target.ProjectPlatform, |
- "SetTargetToActive should not succeed with Win32 platform."); |
- |
- // Now setting the platform to NaCl should make this succeed. |
- TestUtilities.SetSolutionConfiguration( |
- dte_, TestUtilities.BlankNaClProjectUniqueName, "Debug", Strings.NaClPlatformName); |
- target.SetTargetToActive(dte_); |
- Assert.AreEqual( |
- PropertyManager.ProjectPlatformType.NaCl, |
- target.ProjectPlatform, |
- "SetTargetToActive should succeed with NaCl platform and valid project."); |
- Assert.AreEqual(expectedSDKRootDir, target.SDKRootDirectory, "SDK Root incorrect."); |
- } |
- |
- /// <summary> |
- /// A test for GetProperty. Checks some non-trivial C# properties and the GetProperty method. |
- /// </summary> |
- [TestMethod] |
- public void GetPropertyTest() |
- { |
- string expectedSDKRootDir = |
- Environment.GetEnvironmentVariable(Strings.SDKPathEnvironmentVariable); |
- Assert.IsNotNull(expectedSDKRootDir, "SDK Path environment variable not set!"); |
- |
- // Set up the property manager to read the NaCl platform settings from BlankValidSolution. |
- PropertyManager target = new PropertyManager(); |
- dte_.Solution.Open(naclSolution); |
- Project naclProject = dte_.Solution.Projects.Item(TestUtilities.BlankNaClProjectUniqueName); |
- target.SetTarget(naclProject, Strings.NaClPlatformName, "Debug"); |
- Assert.AreEqual( |
- PropertyManager.ProjectPlatformType.NaCl, |
- target.ProjectPlatform, |
- "SetTarget did not succeed with nacl platform on valid project."); |
- |
- string projectDir = Path.Combine( |
- Path.GetDirectoryName(naclSolution), |
- Path.GetDirectoryName(TestUtilities.BlankNaClProjectUniqueName)) + @"\"; |
- string outputDir = Path.Combine(projectDir, "newlib") + @"\"; |
- string assembly = Path.Combine(outputDir, TestUtilities.BlankNaClProjectName + ".nexe"); |
- |
- Assert.AreEqual(expectedSDKRootDir, target.SDKRootDirectory, "SDK Root."); |
- Assert.AreEqual(projectDir, target.ProjectDirectory, "ProjectDirectory."); |
- Assert.AreEqual(outputDir, target.OutputDirectory, "OutputDirectory."); |
- Assert.AreEqual(assembly, target.PluginAssembly, "PluginAssembly."); |
- Assert.AreEqual( |
- @"newlib", |
- target.GetProperty("ConfigurationGeneral", "ToolchainName"), |
- "GetProperty() with ToolchainName incorrect."); |
- } |
- |
- /// <summary> |
- /// A test for SetProperty. |
- /// </summary> |
- [TestMethod] |
- public void SetPropertyTest() |
- { |
- string setTargetSolution = TestUtilities.CreateBlankValidNaClSolution( |
- dte_, |
- "PropertyManagerTestSetTarget", |
- NativeClientVSAddIn.Strings.NaClPlatformName, |
- NativeClientVSAddIn.Strings.NaClPlatformName, |
- TestContext); |
- |
- // Set up the property manager to read the NaCl platform settings from BlankValidSolution. |
- PropertyManager target = new PropertyManager(); |
- dte_.Solution.Open(setTargetSolution); |
- Project naclProject = dte_.Solution.Projects.Item(TestUtilities.BlankNaClProjectUniqueName); |
- target.SetTarget(naclProject, Strings.NaClPlatformName, "Debug"); |
- Assert.AreEqual( |
- PropertyManager.ProjectPlatformType.NaCl, |
- target.ProjectPlatform, |
- "SetTarget did not succeed with nacl platform on valid project."); |
- |
- string newValue = "ThisIsNew"; |
- target.SetProperty("ConfigurationGeneral", "VSNaClSDKRoot", newValue); |
- Assert.AreEqual( |
- newValue, |
- target.GetProperty("ConfigurationGeneral", "VSNaClSDKRoot"), |
- "SetProperty() did not set property VSNaClSDKRoot."); |
- } |
- } |
-} |
+// Copyright (c) 2012 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. |
+ |
+namespace UnitTests |
+{ |
+ using System; |
+ using System.IO; |
+ |
+ using EnvDTE; |
+ using EnvDTE80; |
+ using Microsoft.VisualStudio.TestTools.UnitTesting; |
+ |
+ using NativeClientVSAddIn; |
+ |
+ /// <summary> |
+ /// This is a test class for PropertyManagerTest and is intended |
+ /// to contain all PropertyManager Unit Tests |
+ /// </summary> |
+ [TestClass] |
+ public class PropertyManagerTest |
+ { |
+ /// <summary> |
+ /// This holds the path to the NaCl solution used in these tests. |
+ /// The NaCl solution is a valid nacl/pepper plug-in VS solution. |
+ /// It is copied into the testing deployment directory and opened in some tests. |
+ /// Because unit-tests run in any order, the solution should not be written to |
+ /// in any tests. |
+ /// </summary> |
+ private static string naclSolution; |
+ |
+ /// <summary> |
+ /// The main visual studio object. |
+ /// </summary> |
+ private DTE2 dte_; |
+ |
+ /// <summary> |
+ /// Gets or sets the test context which provides information about, |
+ /// and functionality for the current test run. |
+ /// </summary> |
+ public TestContext TestContext { get; set; } |
+ |
+ /// <summary> |
+ /// This is run one time before any test methods are called. Here we set-up a test-copy of a |
+ /// new NaCl solution for use in the tests. |
+ /// </summary> |
+ /// <param name="testContext">Holds information about the current test run</param> |
+ [ClassInitialize] |
+ public static void ClassSetup(TestContext testContext) |
+ { |
+ DTE2 dte = TestUtilities.StartVisualStudioInstance(); |
+ try |
+ { |
+ naclSolution = TestUtilities.CreateBlankValidNaClSolution( |
+ dte, |
+ "PropertyManagerTest", |
+ NativeClientVSAddIn.Strings.PepperPlatformName, |
+ NativeClientVSAddIn.Strings.NaClPlatformName, |
+ testContext); |
+ } |
+ finally |
+ { |
+ TestUtilities.CleanUpVisualStudioInstance(dte); |
+ } |
+ } |
+ |
+ /// <summary> |
+ /// This is run before each test to create test resources. |
+ /// </summary> |
+ [TestInitialize] |
+ public void TestSetup() |
+ { |
+ dte_ = TestUtilities.StartVisualStudioInstance(); |
+ try |
+ { |
+ TestUtilities.AssertAddinLoaded(dte_, NativeClientVSAddIn.Strings.AddInName); |
+ } |
+ catch |
+ { |
+ TestUtilities.CleanUpVisualStudioInstance(dte_); |
+ throw; |
+ } |
+ } |
+ |
+ /// <summary> |
+ /// This is run after each test to clean up things created in TestSetup(). |
+ /// </summary> |
+ [TestCleanup] |
+ public void TestCleanup() |
+ { |
+ TestUtilities.CleanUpVisualStudioInstance(dte_); |
+ } |
+ |
+ /// <summary> |
+ /// Tests SetTarget() and SetTargetToActive(). |
+ /// </summary> |
+ [TestMethod] |
+ public void SetTargetTest() |
+ { |
+ string expectedSDKRootDir = |
+ Environment.GetEnvironmentVariable(Strings.SDKPathEnvironmentVariable); |
+ Assert.IsNotNull(expectedSDKRootDir, "SDK Path environment variable not set!"); |
+ |
+ PropertyManager target = new PropertyManager(); |
+ dte_.Solution.Open(naclSolution); |
+ |
+ Project naclProject = dte_.Solution.Projects.Item(TestUtilities.BlankNaClProjectUniqueName); |
+ Project notNacl = dte_.Solution.Projects.Item(TestUtilities.NotNaClProjectUniqueName); |
+ |
+ // Invalid project. |
+ target.SetTarget(notNacl, Strings.PepperPlatformName, "Debug"); |
+ Assert.AreEqual( |
+ PropertyManager.ProjectPlatformType.Other, |
+ target.ProjectPlatform, |
+ "SetTarget should not succeed with non-nacl/pepper project."); |
+ |
+ // Try valid project with different platforms. |
+ target.SetTarget(naclProject, Strings.NaClPlatformName, "Debug"); |
+ Assert.AreEqual( |
+ PropertyManager.ProjectPlatformType.NaCl, |
+ target.ProjectPlatform, |
+ "SetTarget did not succeed with nacl platform on valid project."); |
+ Assert.AreEqual(expectedSDKRootDir, target.SDKRootDirectory, "SDK Root incorrect."); |
+ |
+ target.SetTarget(naclProject, "Win32", "Debug"); |
+ Assert.AreEqual( |
+ PropertyManager.ProjectPlatformType.Other, |
+ target.ProjectPlatform, |
+ "SetTarget did not set 'other' platform on when Win32 platform of valid project."); |
+ |
+ target.SetTarget(naclProject, Strings.PepperPlatformName, "Debug"); |
+ Assert.AreEqual( |
+ PropertyManager.ProjectPlatformType.Pepper, |
+ target.ProjectPlatform, |
+ "SetTarget did not succeed with pepper platform on valid project."); |
+ Assert.AreEqual(expectedSDKRootDir, target.SDKRootDirectory, "SDK Root incorrect."); |
+ |
+ // Setting the start-up project to a non-cpp project should make loading fail. |
+ object[] badStartupProj = { TestUtilities.NotNaClProjectUniqueName }; |
+ dte_.Solution.SolutionBuild.StartupProjects = badStartupProj; |
+ target.SetTargetToActive(dte_); |
+ Assert.AreEqual( |
+ PropertyManager.ProjectPlatformType.Other, |
+ target.ProjectPlatform, |
+ "SetTargetToActive should not succeed with non-nacl/pepper project."); |
+ |
+ // Setting the start-up project to correct C++ project, but also setting the platform |
+ // to non-nacl/pepper should make loading fail. |
+ object[] startupProj = { TestUtilities.BlankNaClProjectUniqueName }; |
+ dte_.Solution.SolutionBuild.StartupProjects = startupProj; |
+ TestUtilities.SetSolutionConfiguration( |
+ dte_, TestUtilities.BlankNaClProjectUniqueName, "Debug", "Win32"); |
+ target.SetTargetToActive(dte_); |
+ Assert.AreEqual( |
+ PropertyManager.ProjectPlatformType.Other, |
+ target.ProjectPlatform, |
+ "SetTargetToActive should not succeed with Win32 platform."); |
+ |
+ // Now setting the platform to NaCl should make this succeed. |
+ TestUtilities.SetSolutionConfiguration( |
+ dte_, TestUtilities.BlankNaClProjectUniqueName, "Debug", Strings.NaClPlatformName); |
+ target.SetTargetToActive(dte_); |
+ Assert.AreEqual( |
+ PropertyManager.ProjectPlatformType.NaCl, |
+ target.ProjectPlatform, |
+ "SetTargetToActive should succeed with NaCl platform and valid project."); |
+ Assert.AreEqual(expectedSDKRootDir, target.SDKRootDirectory, "SDK Root incorrect."); |
+ } |
+ |
+ /// <summary> |
+ /// A test for GetProperty. Checks some non-trivial C# properties and the GetProperty method. |
+ /// </summary> |
+ [TestMethod] |
+ public void GetPropertyTest() |
+ { |
+ string expectedSDKRootDir = |
+ Environment.GetEnvironmentVariable(Strings.SDKPathEnvironmentVariable); |
+ Assert.IsNotNull(expectedSDKRootDir, "SDK Path environment variable not set!"); |
+ |
+ // Set up the property manager to read the NaCl platform settings from BlankValidSolution. |
+ PropertyManager target = new PropertyManager(); |
+ dte_.Solution.Open(naclSolution); |
+ Project naclProject = dte_.Solution.Projects.Item(TestUtilities.BlankNaClProjectUniqueName); |
+ target.SetTarget(naclProject, Strings.NaClPlatformName, "Debug"); |
+ Assert.AreEqual( |
+ PropertyManager.ProjectPlatformType.NaCl, |
+ target.ProjectPlatform, |
+ "SetTarget did not succeed with nacl platform on valid project."); |
+ |
+ string projectDir = Path.Combine( |
+ Path.GetDirectoryName(naclSolution), |
+ Path.GetDirectoryName(TestUtilities.BlankNaClProjectUniqueName)) + @"\"; |
+ string outputDir = Path.Combine(projectDir, "newlib") + @"\"; |
+ string assembly = Path.Combine(outputDir, TestUtilities.BlankNaClProjectName + ".nexe"); |
+ |
+ Assert.AreEqual(expectedSDKRootDir, target.SDKRootDirectory, "SDK Root."); |
+ Assert.AreEqual(projectDir, target.ProjectDirectory, "ProjectDirectory."); |
+ Assert.AreEqual(outputDir, target.OutputDirectory, "OutputDirectory."); |
+ Assert.AreEqual(assembly, target.PluginAssembly, "PluginAssembly."); |
+ Assert.AreEqual( |
+ @"newlib", |
+ target.GetProperty("ConfigurationGeneral", "ToolchainName"), |
+ "GetProperty() with ToolchainName incorrect."); |
+ } |
+ |
+ /// <summary> |
+ /// A test for SetProperty. |
+ /// </summary> |
+ [TestMethod] |
+ public void SetPropertyTest() |
+ { |
+ string setTargetSolution = TestUtilities.CreateBlankValidNaClSolution( |
+ dte_, |
+ "PropertyManagerTestSetTarget", |
+ NativeClientVSAddIn.Strings.NaClPlatformName, |
+ NativeClientVSAddIn.Strings.NaClPlatformName, |
+ TestContext); |
+ |
+ // Set up the property manager to read the NaCl platform settings from BlankValidSolution. |
+ PropertyManager target = new PropertyManager(); |
+ dte_.Solution.Open(setTargetSolution); |
+ Project naclProject = dte_.Solution.Projects.Item(TestUtilities.BlankNaClProjectUniqueName); |
+ target.SetTarget(naclProject, Strings.NaClPlatformName, "Debug"); |
+ Assert.AreEqual( |
+ PropertyManager.ProjectPlatformType.NaCl, |
+ target.ProjectPlatform, |
+ "SetTarget did not succeed with nacl platform on valid project."); |
+ |
+ string newValue = "ThisIsNew"; |
+ target.SetProperty("ConfigurationGeneral", "VSNaClSDKRoot", newValue); |
+ Assert.AreEqual( |
+ newValue, |
+ target.GetProperty("ConfigurationGeneral", "VSNaClSDKRoot"), |
+ "SetProperty() did not set property VSNaClSDKRoot."); |
+ } |
+ } |
+} |