public void Authenticate(IRestClient client, IRestRequest request) { request.Credentials = new NetworkCredential(_user, _pass); // TODO: Figure out how to remove the if.. currently PUT does not work if the DigestAuthFixer is in place if (request.Method == Method.GET) { var url = client.BuildUri(request).ToString(); var uri = new Uri(url); var digestAuthFixer = new DigestAuthFixer(client.BaseUrl.ToString(), _user, _pass); digestAuthFixer.GrabResponse(uri.PathAndQuery); var digestHeader = digestAuthFixer.GetDigestHeader(uri.PathAndQuery); request.AddParameter("Authentication", digestHeader, ParameterType.HttpHeader); } }
public void StartSystemRestoreInvalidBackupFileTest() { RunTest(() => { HttpWebResponse httpResponse = null; string expectedDownTime = null; var uploadURI = StartSystemRestore(out expectedDownTime); try { RunStep(() => { var sender = new DigestAuthFixer(_username, _password); httpResponse = sender.GrabResponse(uploadURI, "application/octet-stream", new byte[] { 1, 2, 3 }); }, string.Format("Invoke HTTP POST request on URI '{0}'", uploadURI)); } catch (WebException e) { if (null == (e.Response as HttpWebResponse)) { StepFailed(e); return; } StepPassed(); httpResponse = (HttpWebResponse)e.Response; } catch (Exception e) { StepFailed(e); return; } Assert(httpResponse.StatusCode == HttpStatusCode.UnsupportedMediaType, "HTTP Status is not '415 Unsupported Media Type'", "Check HTTP status code", string.Format("HTTP Status: {0} {1}", ((int)httpResponse.StatusCode), httpResponse.StatusDescription)); }); }
public void NvtSnapshotUriTest() { RunTest(() => { Profile[] profiles = GetProfiles(); Assert((profiles != null && profiles.Length > 0), "No profile available", "Check if DUT returned at least one profile"); Profile mediaProfile = null; foreach (Profile profile in profiles) { if (profile.VideoEncoderConfiguration != null && profile.VideoSourceConfiguration != null) { mediaProfile = profile; break; } } Assert(mediaProfile != null, "Profile with Video Encoder configuration and Video Source configuration not found", "Check if media profile with video source and video encoder is present"); MediaUri response = GetSnapshotUri(mediaProfile.token); Assert(response != null, "Response returned is null", "Check that response is not null"); Assert(response.Uri.IsValidUrl(), "URL provided is not valid", "Check that MediaUri field contains valid URL", string.Format("URI: {0}", response.Uri)); // HTTP GET HttpWebResponse httpResponse = null; RunStep(() => { //HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(response.Uri); //NetworkCredential credential = new NetworkCredential(_username, _password); //request.Credentials = credential; //httpResponse = (HttpWebResponse)request.GetResponse(); var uri = new Uri(response.Uri); var sender = new DigestAuthFixer(_username, _password); httpResponse = sender.GrabResponse(response.Uri); }, "Invoke HTTP GET request on snapshot URI"); Assert(httpResponse.ContentType.ToLower() == "image/jpeg", "ContentType is not image/jpeg", "Check ContentType header", string.Format("ContentType: {0}", httpResponse.ContentType)); Assert(httpResponse.StatusCode == HttpStatusCode.OK, "HTTP Status is not '200 OK'", "Check HTTP status code", string.Format("HTTP Status: {0} {1}", ((int)httpResponse.StatusCode), httpResponse.StatusDescription)); Stream receiveStream = httpResponse.GetResponseStream(); MemoryStream memoryStream = new MemoryStream(); int bufSize = 1024; byte[] buffer = new byte[bufSize]; int bytes = receiveStream.Read(buffer, 0, bufSize); while (bytes > 0) { System.Diagnostics.Debug.WriteLine(string.Format("Next {0} bytes", bytes)); memoryStream.Write(buffer, 0, bytes); bytes = receiveStream.Read(buffer, 0, bufSize); } httpResponse.Close(); Assert(memoryStream.GetBuffer().IsJpeg(), "Information returned is not JPEG image", "Validate JPEG image"); }); }
public void StartSystemRestoreTest() { RunTest(() => { string supportInfoUri; string systemBackupUri; GetSystemUrisResponseExtension extension; GetSystemURIs(out supportInfoUri, out systemBackupUri, out extension); Assert(systemBackupUri.Any(), "System Backup URI is empty", "Check System Backup URI isn't empty"); HttpWebResponse httpResponse = null; var firmwareupgrade = new MemoryStream(); RunStep(() => { var sender = new DigestAuthFixer(_username, _password); httpResponse = sender.GrabResponse(systemBackupUri); httpResponse.GetResponseStream().CopyTo(firmwareupgrade); }, string.Format("Invoke HTTP GET request on URI '{0}'", systemBackupUri)); Assert(httpResponse.StatusCode == HttpStatusCode.OK, "HTTP Status is not '200 OK'", "Check HTTP status code", string.Format("HTTP Status: {0} {1}", ((int)httpResponse.StatusCode), httpResponse.StatusDescription)); Assert(0 != httpResponse.ContentLength, "The DUT returned empty System Backup", "Check System Backup content is returned"); string expectedDownTime = null; var uploadURI = StartSystemRestore(out expectedDownTime); try { RunStep(() => { var sender = new DigestAuthFixer(_username, _password); httpResponse = sender.GrabResponse(uploadURI, "application/octet-stream", firmwareupgrade.ToArray()); }, string.Format("Invoke HTTP POST request on URI '{0}'", uploadURI)); } catch (WebException e) { if (null == (e.Response as HttpWebResponse)) { StepFailed(e); return; } StepPassed(); httpResponse = (HttpWebResponse)e.Response; } catch (Exception e) { StepFailed(e); return; } Assert(httpResponse.StatusCode == HttpStatusCode.OK, "HTTP Status is not '200 OK'", "Check HTTP status code", string.Format("HTTP Status: {0} {1}", ((int)httpResponse.StatusCode), httpResponse.StatusDescription)); var downTime = XmlConvert.ToTimeSpan(expectedDownTime); RunStep(() => Sleep((int)downTime.TotalMilliseconds), string.Format("{0} seconds timeout after StartSystemRestore", (int)downTime.TotalSeconds)); discoverDevice(); }); }
public void GetSystemUrisTest() { RunTest(() => { DeviceServiceCapabilities serviceCapabilities = null; DeviceCapabilities deviceManagementCapabilities = null; if (Features.ContainsFeature(Feature.GetServices)) { serviceCapabilities = GetServiceCapabilities(); } else { deviceManagementCapabilities = GetCapabilities(null).Device; } Assert(null != serviceCapabilities || null != deviceManagementCapabilities, "The DUT didn't returned device capabilities", "Check capabilities is returned"); string supportInfoUri; string systemBackupUri; GetSystemUrisResponseExtension extension; var systemLogURIs = GetSystemURIs(out supportInfoUri, out systemBackupUri, out extension); if (null != serviceCapabilities && null != serviceCapabilities.System && serviceCapabilities.System.HttpSystemLoggingSpecified && serviceCapabilities.System.HttpSystemLogging || null != deviceManagementCapabilities && null != deviceManagementCapabilities.System && null != deviceManagementCapabilities.System.Extension && deviceManagementCapabilities.System.Extension.HttpSystemLoggingSpecified && deviceManagementCapabilities.System.Extension.HttpSystemLogging) { Assert(systemLogURIs.Any(uri => uri.Uri.Any()), "There are no valid System Log URIs", "Check there are non-empty System Log URIs"); foreach (var systemLogUri in systemLogURIs) { HttpWebResponse httpResponse = null; RunStep(() => { var sender = new DigestAuthFixer(_username, _password); httpResponse = sender.GrabResponse(systemLogUri.Uri); httpResponse.GetResponseStream().Close(); }, string.Format("Invoke HTTP GET request on URI '{0}'", systemLogUri.Uri)); Assert(httpResponse.StatusCode == HttpStatusCode.OK, "HTTP Status is not '200 OK'", "Check HTTP status code", string.Format("HTTP Status: {0} {1}", ((int)httpResponse.StatusCode), httpResponse.StatusDescription)); Assert(0 != httpResponse.ContentLength, "The DUT returned empty System Log", "Check System Log content is returned"); } } if (null != serviceCapabilities && null != serviceCapabilities.System && serviceCapabilities.System.HttpSupportInformationSpecified && serviceCapabilities.System.HttpSupportInformation || null != deviceManagementCapabilities && null != deviceManagementCapabilities.System && null != deviceManagementCapabilities.System.Extension && deviceManagementCapabilities.System.Extension.HttpSupportInformationSpecified && deviceManagementCapabilities.System.Extension.HttpSupportInformation) { Assert(supportInfoUri.Any(), "Support Info URI is empty", "Check Support Info URI isn't empty"); HttpWebResponse httpResponse = null; RunStep(() => { var sender = new DigestAuthFixer(_username, _password); httpResponse = sender.GrabResponse(supportInfoUri); httpResponse.GetResponseStream().Close(); }, string.Format("Invoke HTTP GET request on URI '{0}'", supportInfoUri)); Assert(httpResponse.StatusCode == HttpStatusCode.OK, "HTTP Status is not '200 OK'", "Check HTTP status code", string.Format("HTTP Status: {0} {1}", ((int)httpResponse.StatusCode), httpResponse.StatusDescription)); Assert(0 != httpResponse.ContentLength, "The DUT returned empty Support Info", "Check Support Info content is returned"); } if (null != serviceCapabilities && null != serviceCapabilities.System && serviceCapabilities.System.HttpSystemBackupSpecified && serviceCapabilities.System.HttpSystemBackup || null != deviceManagementCapabilities && null != deviceManagementCapabilities.System && null != deviceManagementCapabilities.System.Extension && deviceManagementCapabilities.System.Extension.HttpSystemBackupSpecified && deviceManagementCapabilities.System.Extension.HttpSystemBackup) { Assert(systemBackupUri.Any(), "System Backup URI is empty", "Check System Backup URI isn't empty"); HttpWebResponse httpResponse = null; RunStep(() => { var sender = new DigestAuthFixer(_username, _password); httpResponse = sender.GrabResponse(systemBackupUri); httpResponse.GetResponseStream().Close(); }, string.Format("Invoke HTTP GET request on URI '{0}'", systemBackupUri)); Assert(httpResponse.StatusCode == HttpStatusCode.OK, "HTTP Status is not '200 OK'", "Check HTTP status code", string.Format("HTTP Status: {0} {1}", ((int)httpResponse.StatusCode), httpResponse.StatusDescription)); Assert(0 != httpResponse.ContentLength, "The DUT returned empty System Backup", "Check System Backup content is returned"); } }); }