public void MSSITESS_S05_TC01_ExportWorkflowTemplateSucceed() { Site.Assume.IsTrue(Common.IsRequirementEnabled(5331, this.Site), @"Test is executed only when R5331Enabled is set to true."); #region Variables string templateName = Common.GetConfigurationPropertyValue(Constants.WorkflowTemplateName, this.Site); string destinationUrl = Common.GetConfigurationPropertyValue(Constants.DataPath, this.Site); string exportResult = string.Empty; string[] exportFiles = null; string[] expectedFiles = null; #endregion Variables // Initialize the web service with an authenticated account. this.sitessAdapter.InitializeWebService(UserAuthenticationOption.Authenticated); // Invoke ExportWorkflowTemplate operation, a URL is expected to be returned and a solution file is expected to be exported. exportResult = this.sitessAdapter.ExportWorkflowTemplate(this.solutionName + Constants.WspExtension, Constants.SolutionTitle, Constants.SolutionDescription, templateName, destinationUrl); // If returned value is not a URL or exported files are inconsistent with the expected, log it. Site.Assert.IsTrue( Uri.IsWellFormedUriString(exportResult, UriKind.Relative), "ExportWorkflowTemplate should return a valid Uri, actual uri {0}.", exportResult); string solutions = TestSuiteHelper.VerifyExportAndImportFile(this.solutionName, 1, this.Site, this.sutAdapter); exportFiles = solutions == null ? null : solutions.TrimEnd(new char[] { ';' }).Split(';'); this.isSolutionFileCreated = true; // Format the expected file names in the document library, only one solution file (i.e. SolutionName) is expected. expectedFiles = new string[] { this.solutionName + Constants.WspExtension }; Site.Assert.IsTrue( AdapterHelper.CompareStringArrays(expectedFiles, exportFiles), "ExportWorkflowTemplate should export the solution file."); // If returned value is a URL and exported files are consistent with the expected, it means the ExportWorkflowTemplate operation succeed. // Invoke ExportWorkflowTemplate operation again, a URL is expected to be returned and a second solution file is expected to be exported. exportResult = this.sitessAdapter.ExportWorkflowTemplate(this.solutionName + Constants.WspExtension, Constants.SolutionTitle, Constants.SolutionDescription, templateName, destinationUrl); // If returned value is not a URL or exported files are inconsistent with the expected, log it. Site.Assert.IsTrue( Uri.IsWellFormedUriString(exportResult, UriKind.Relative), "ExportWorkflowTemplate should return a valid Uri, actual uri {0}.", exportResult); solutions = TestSuiteHelper.VerifyExportAndImportFile(this.solutionName, 2, this.Site, this.sutAdapter); exportFiles = solutions == null ? null : solutions.TrimEnd(new char[] { ';' }).Split(';'); // Format the expected file names in the document library, two solution files (i.e. SolutionName & SolutionName2) are expected. expectedFiles = new string[] { this.solutionName + Constants.WspExtension, this.solutionName + "2" + Constants.WspExtension }; #region Capture requirements bool isFilesAreEqual = AdapterHelper.CompareStringArrays(expectedFiles, exportFiles); // If the exported files are consistent with the expected, R386 can be captured. Site.Log.Add(LogEntryKind.Debug, "Verify MS-SITESS_R386, the export files are {0}", exportFiles); // Verify MS-SITESS requirement: MS-SITESS_R386 Site.CaptureRequirementIfIsTrue( isFilesAreEqual, 386, @"[In ExportWorkflowTemplate] [solutionFileName:] If a solution with the specified name already exists in the document library in which the solution file needs to be created, the server MUST retry with <filename>2.wsp, where <filename> is obtained from solutionFileName after excluding the extension."); // If the exported files are consistent with the expected, R109 can be captured. Site.Log.Add(LogEntryKind.Debug, "Verify MS-SITESS_R109, the export files are {0}", exportFiles); // Verify MS-SITESS requirement: MS-SITESS_R109 Site.CaptureRequirementIfIsTrue( isFilesAreEqual, 109, @"[In ExportWorkflowTemplate] [solutionFileName:] If a unique name is obtained, the protocol server MUST continue with that name [to create a solution file using this unique name]."); // If code can run to here, it means that Microsoft SharePoint Foundation 2010 and above support operation ExportWorkflowTemplate. this.VerifyOperationExportWorkflowTemplate(); #endregion Capture requirements }
public void MSSITESS_S06_TC01_GetSiteSucceed() { Site.Assume.IsTrue(Common.IsRequirementEnabled(5341, this.Site), @"Test is executed only when R5341Enabled is set to true."); #region Variables string url = Common.GetConfigurationPropertyValue(Constants.NormalSubsiteUrl, this.Site); string getResult = string.Empty; Guid expectedGuid = Guid.Empty; bool expectedUserCodeEnabled = false; Site result; Guid siteGuid = Guid.Empty; bool siteUserCodeEnabled = false; #endregion Variables // Initialize the web service with an authenticated account. this.sitessAdapter.InitializeWebService(UserAuthenticationOption.Authenticated); // Get the site collection identifier of the site collection. expectedGuid = new Guid(this.sutAdapter.GetSiteGuid()); Site.Assert.AreNotEqual <Guid>( Guid.Empty, expectedGuid, "Site's guid should not be null."); // Set whether user code is enabled for the site collection. Set user code is true. expectedUserCodeEnabled = this.sutAdapter.SetUserCodeEnabled(true); Site.Assert.IsTrue(expectedUserCodeEnabled, "The user code should be enabled for the site collection."); // Invoke the GetSite operation with valid SiteUrl. // getResult is in form: <Site Url=UrlString Id=IdString UserCodeEnabled=UserCodeEnabledString />. // If split getResult with '"', the fourth is IdString. And, the sixth is UserCodeEnabledString. getResult = this.sitessAdapter.GetSite(url); Site.Assert.IsNotNull(getResult, "The GetSiteResult should not be null when invoking the GetSite operation with valid SiteUrl"); result = AdapterHelper.SiteResultDeserialize(getResult); // Get the Id element form result of the succeed GetSite operation. siteGuid = new Guid(result.Id); // Get the UserCodeEnabled element form result of the succeed GetSite operation. bool convertResult = bool.TryParse(result.UserCodeEnabled, out siteUserCodeEnabled); #region Capture requirements this.VerifyIdString(expectedGuid, siteGuid); if (convertResult) { // The value for UserCodeEnabledString MUST be ""true"" if user code is enabled for the site collection. Site.Log.Add(LogEntryKind.Debug, "Verify MS-SITESS_R398"); // Verify MS-SITESS requirement: MS-SITESS_R398 Site.CaptureRequirementIfAreEqual <bool>( expectedUserCodeEnabled, siteUserCodeEnabled, 398, @"[In GetSiteResponse] [GetSiteResult:] The value for UserCodeEnabledString MUST be ""true"" if user code is enabled for the site collection."); } else { Site.Assert.Fail("The returned value of the UserCodeEnabled element is not of type bool, the value is : {0}", result.UserCodeEnabled); } #endregion Capture requirements // Set whether user code is enabled for the site collection. Set user code is false. expectedUserCodeEnabled = this.sutAdapter.SetUserCodeEnabled(false); Site.Assert.IsFalse(expectedUserCodeEnabled, "The user code should not be enabled for the site collection."); // Invoke the GetSite operation with valid SiteUrl. // getResult is in form: <Site Url=UrlString Id=IdString UserCodeEnabled=UserCodeEnabledString />. // If split getResult with '"', the fourth is IdString. And, the sixth is UserCodeEnabledString. getResult = this.sitessAdapter.GetSite(url); Site.Assert.IsNotNull(getResult, "The GetSiteResult should not be null when invoking the GetSite operation with valid SiteUrl"); result = AdapterHelper.SiteResultDeserialize(getResult); // Get the Id element form result of the succeed GetSite operation. siteGuid = new Guid(result.Id); // Get the UserCodeEnabled element form result of the succeed GetSite operation. convertResult = bool.TryParse(result.UserCodeEnabled, out siteUserCodeEnabled); #region Capture requirements this.VerifyIdString(expectedGuid, siteGuid); if (convertResult) { // The value for UserCodeEnabledString MUST be ""false"" if user code is not enabled for the site collection. Site.Log.Add(LogEntryKind.Debug, "Verify MS-SITESS_R399"); // Verify MS-SITESS requirement: MS-SITESS_R399 Site.CaptureRequirementIfAreEqual <bool>( expectedUserCodeEnabled, siteUserCodeEnabled, 399, @"[In GetSiteResponse] [GetSiteResult:] The value for UserCodeEnabledString MUST be ""false"" if it is not enabled."); } else { Site.Assert.Fail("The returned value of the UserCodeEnabled element is not of type bool, the value is : {0}", result.UserCodeEnabled); } if (Common.IsRequirementEnabled(326001002, this.Site)) { string[] urls = new string[] { result.Url }; bool[] urlss = this.sitessAdapter.IsScriptSafeUrl(urls); // If IsScriptSafeUrl is false, it indicates the url is not a valid script safe url. Site.Log.Add(LogEntryKind.Debug, "Verify MS-SITESS_R32602702"); // Verify MS-SITESS requirement: MS-SITESS_R32602702 Site.CaptureRequirementIfIsFalse( urlss[0], 32602702, @"[InArrayOfBoolean] boolean: [False] Indicates a URL is not a valid script safe URL for the current site."); // If urls is a file full path or URL, R422003 can be captured. Site.Log.Add(LogEntryKind.Debug, "Verify MS-SITESS_R422003"); Uri fileLocation; bool isUrl = Uri.TryCreate(urls[0], UriKind.Absolute, out fileLocation); // Verify MS-SITESS requirement: MS-SITESS_R422003 Site.CaptureRequirementIfIsTrue( isUrl, 422003, @"[In ArrayOfString] string: A file full path or URL."); } #endregion Capture requirements // If code can run to here, it means that Microsoft SharePoint Foundation 2010 and above support operation GetSite. Site.Log.Add(LogEntryKind.Debug, "Verify MS-SITESS_R5341, Microsoft SharePoint Foundation 2010 and above support operation GetSite."); // Verify MS-SITESS requirement: MS-SITESS_R5341 Site.CaptureRequirement( 5341, @"[In Appendix B: Product Behavior] Implementation does support this method [GetSite]. (Microsoft SharePoint Foundation 2010 and above follow this behavior.)"); }