public void MSWOPI_S20_TC01_EnumerateChildren()
{
// Get the folder URL.
string folderFullUrl = Common.GetConfigurationPropertyValue("SubFolderUrl", this.Site);
// Get the WOPI URL.
string wopiTargetFolderUrl = WopiSutManageCodeControlAdapter.GetWOPIRootResourceUrl(folderFullUrl, WOPIRootResourceUrlType.FolderLevel, TokenAndRequestUrlHelper.DefaultUserName, TokenAndRequestUrlHelper.DefaultPassword, TokenAndRequestUrlHelper.DefaultDomain);
// Get folder content URL.
string wopiFolderContentsLevelUrl = TokenAndRequestUrlHelper.GetSubResourceUrl(wopiTargetFolderUrl, WOPISubResourceUrlType.FolderChildrenLevel);
// Get the common header.
WebHeaderCollection commonHeaders = HeadersHelper.GetCommonHeaders(wopiFolderContentsLevelUrl);
// Return the contents of a folder on the WOPI server.
WOPIHttpResponse httpWebResponseForEnumerateChildren = WopiAdapter.EnumerateChildren(wopiFolderContentsLevelUrl, commonHeaders);
int statusCode = httpWebResponseForEnumerateChildren.StatusCode;
// Get the json string from the response of EnumerateChildren.
string jsonStringForEnumerateChildren = WOPIResponseHelper.ReadHTTPResponseBodyToString(httpWebResponseForEnumerateChildren);
// Convert the json string to object.
EnumerateChildren enchildren = WOPISerializerHelper.JsonToObject<EnumerateChildren>(jsonStringForEnumerateChildren);
string fileName = enchildren.Children[0].Name;
// Verify MS-WOPI requirement: MS-WOPI_R707
this.Site.CaptureRequirementIfAreEqual<int>(
200,
statusCode,
707,
@"[In EnumerateChildren] Status code ""200"" means ""Success"".");
// The status code is 200 mean success.When response is success the URIs are return.
this.Site.CaptureRequirement(
703,
@"[In HTTP://server/<...>/wopi*/folder/<id>/children] Operation ""EnumerateChildren"" is used for ""Returns a set of URIs that provides access to resources in the folder"".");
// The status code is 200 mean success.When response is success the contexts are return.
this.Site.CaptureRequirement(
704,
@"[In EnumerateChildren] The EnumerateChildren method returns the contents of a folder on the WOPI server.");
// The status code is 200 mean success.When response is success the URI follows the format.
this.Site.CaptureRequirement(
705,
@"[In EnumerateChildren] HTTP Verb: GET
URI: HTTP://server/<...>/wopi*/folder/<id>/children?access_token=<token>");
string subFileUrl = Common.GetConfigurationPropertyValue("UrlOfFileOnSubFolder", this.Site);
string expectedFileName = TestSuiteHelper.GetFileNameFromFullUrl(subFileUrl);
// Verify MS-WOPI requirement: MS-WOPI_R713
bool isEqualToExpectedFileName = expectedFileName.CompareStringValueIgnoreCase(fileName, this.Site);
this.Site.CaptureRequirementIfIsTrue(
isEqualToExpectedFileName,
713,
@"[In Response Body] Name: The name of the child resource.");
// Verify MS-WOPI requirement: MS-WOPI_R714
// The EnumerateChildren request message follow this format and use the id and token return by WOPI server.
// If the WOPI server can return the response of EnumerateChildren, capture R714
this.Site.CaptureRequirement(
714,
@"[In Response Body] Url: The URI of the child resource of the form http://server/<...>/wopi*/files/<id>?access_token=<token> where id is the WOPI server’s unique id of the resource and token is the token that provides access to the resource.");
}