protected override bool HandleExpectedError(Exception ex)
        {
            TestLogger.LogImportantMessage("Enter LAAndReportResult.HandleExpectedError()");

            if (string.IsNullOrEmpty(_strExpectedError))
            {
                TestLogger.LogMessage("Setting error code to " + RequestConfigData.ExpectedLAErrorCode);
                _strExpectedError = RequestConfigData.ExpectedLAErrorCode;
            }

            bool bHandled = false;

            if (!string.IsNullOrEmpty(_strExpectedError))
            {
                if (ex.Message.ToLower().Contains(_strExpectedError.ToLower()))
                {
                    TestLogger.LogImportantMessage("'" + ex.Message + "' Contains " + _strExpectedError + "  as expected");
                    bHandled = true;
                    _reportResult(true, sampleDataItem);
                }
            }

            TestLogger.LogImportantMessage("Leave LAAndReportResult.HandleExpectedError()");
            return(bHandled);
        }
        public void  MeteringReportProactively()
        {
            TestLogger.LogMessage("Enter Metering.MeteringReportProactively()");
            try
            {
                TestLogger.LogMessage("Creating metering report service request...");
                PlayReadyMeteringReportServiceRequest meteringRequest = new PlayReadyMeteringReportServiceRequest();
                MeteringReportReactively(meteringRequest);
            }
            catch (Exception ex)
            {
                if (ex.HResult == ServiceRequest.MSPR_E_NEEDS_INDIVIDUALIZATION)
                {
                    PlayReadyIndividualizationServiceRequest indivServiceRequest = new PlayReadyIndividualizationServiceRequest();

                    RequestChain requestChain = new RequestChain(indivServiceRequest);
                    requestChain.FinishAndReportResult(new ReportResultDelegate(HandleIndivServiceRequest_Finished));
                }
                else
                {
                    TestLogger.LogImportantMessage("MeteringReportProactively failed:" + ex.HResult);
                }
            }

            TestLogger.LogMessage("Leave Metering.MeteringReportProactively()");
        }
Пример #3
0
        public void SecureStopProactively()
        {
            TestLogger.LogMessage("Enter SecureStop.SecureStopReportProactively()");
            try
            {
                TestLogger.LogMessage("Creating SecureStop report service request...");

                PlayReadySecureStopIterable secureStopIterable = new PlayReadySecureStopIterable(_SecureStopCert);

                PlayReadySecureStopServiceRequest SecureStopRequest = secureStopIterable.First() as PlayReadySecureStopServiceRequest;

                //PlayReadySecureStopServiceRequest SecureStopRequest = new PlayReadySecureStopServiceRequest(_SecureStopCert);
                SecureStopReactively(SecureStopRequest);
            }
            catch (Exception ex)
            {
                if (ex.HResult == ServiceRequest.MSPR_E_NEEDS_INDIVIDUALIZATION)
                {
                    PlayReadyIndividualizationServiceRequest indivServiceRequest = new PlayReadyIndividualizationServiceRequest();

                    RequestChain requestChain = new RequestChain(indivServiceRequest);
                    requestChain.FinishAndReportResult(new ReportResultDelegate(HandleIndivServiceRequest_Finished));
                }
                else
                {
                    TestLogger.LogImportantMessage("SecureStopProactively failed:" + ex.HResult);
                }
            }

            TestLogger.LogMessage("Leave SecureStop.SecureStopReportProactively()");
        }
        public void DomainJoinProactively()
        {
            TestLogger.LogMessage("Enter DomainJoin.DomainJoinProactively()");
            try
            {
                PlayReadyDomainJoinServiceRequest domainJoinRequest = new PlayReadyDomainJoinServiceRequest();
                domainJoinRequest.DomainServiceId = RequestConfigData.DomainServiceId;
                domainJoinRequest.DomainAccountId = RequestConfigData.DomainAccountId;
                domainJoinRequest.Uri             = RequestConfigData.DomainUri;

                DomainJoinReactively(domainJoinRequest);
            }
            catch (Exception ex)
            {
                if (ex.HResult == ServiceRequest.MSPR_E_NEEDS_INDIVIDUALIZATION)
                {
                    PlayReadyIndividualizationServiceRequest indivServiceRequest = new PlayReadyIndividualizationServiceRequest();

                    RequestChain requestChain = new RequestChain(indivServiceRequest);
                    requestChain.FinishAndReportResult(new ReportResultDelegate(HandleIndivServiceRequest_Finished));
                }
                else
                {
                    TestLogger.LogImportantMessage("DomainJoinProactively failed:" + ex.HResult);
                }
            }

            TestLogger.LogMessage("Leave DomainJoin.DomainJoinProactively");
        }
        protected override void LAServiceRequestCompleted(IPlayReadyLicenseAcquisitionServiceRequest sender, Exception hrCompletionStatus)
        {
            TestLogger.LogMessage("Enter LAAndReportResult.LAServiceRequestCompleted()");

            if (hrCompletionStatus == null)
            {
                TestLogger.LogImportantMessage("***License acquisition succeeded***");
                _reportResult(true, sampleDataItem);
            }
            else
            {
                if (PerformEnablingActionIfRequested(hrCompletionStatus) || HandleExpectedError(hrCompletionStatus))
                {
                    TestLogger.LogMessage("Exception handled.");
                }
                else
                {
                    TestLogger.LogError("LAServiceRequestCompleted ERROR: " + hrCompletionStatus.ToString());
                    TestLogger.LogError("hrCompletionStatus.HResult=" + hrCompletionStatus.HResult.ToString());
                    _reportResult(false, sampleDataItem);
                }
            }

            TestLogger.LogMessage("Leave LAAndReportResult.LAServiceRequestCompleted()");
        }
        protected virtual void MeteringServiceRequestCompleted(PlayReadyMeteringReportServiceRequest sender, Exception hrCompletionStatus)
        {
            TestLogger.LogImportantMessage("MeteringServiceRequestCompleted");

            if (hrCompletionStatus != null)
            {
                TestLogger.LogError("MeteringServiceRequestCompleted failed with " + hrCompletionStatus.HResult);
            }
        }
        async public void  AcquireLicenseReactively(IPlayReadyLicenseAcquisitionServiceRequest licenseRequest)
        {
            TestLogger.LogImportantMessage("Enter LicenseAcquisition.AcquireLicenseReactively()");
            Exception exception = null;

            try
            {
                _serviceRequest = licenseRequest;
                ConfigureServiceRequest();
                SerivceRequestStatistics.IncLicenseAcquisitionCount();

                TestLogger.LogMessage("ChallengeCustomData = " + licenseRequest.ChallengeCustomData);
                if (RequestConfigData.ManualEnabling)
                {
                    TestLogger.LogMessage("Manually posting the request...");

                    HttpHelper httpHelper = new HttpHelper(licenseRequest);
                    await httpHelper.GenerateChallengeAndProcessResponse();
                }
                else
                {
                    TestLogger.LogImportantMessage("Begin license acquisition service request...");
                    await licenseRequest.BeginServiceRequest();
                }

                TestLogger.LogMessage("Post-LicenseAcquisition Values:");
                TestLogger.LogMessage("DomainServiceId          = " + licenseRequest.DomainServiceId.ToString());
                DumpContentHeaderValues(licenseRequest.ContentHeader);
            }
            catch (Exception ex)
            {
                TestLogger.LogMessage("Saving exception.. " + ex.ToString());

                exception = ex;
            }
            finally
            {
                if (exception == null)
                {
                    TestLogger.LogMessage("ResponseCustomData       = " + licenseRequest.ResponseCustomData);
                }
                LAServiceRequestCompleted(licenseRequest, exception);
            }

            TestLogger.LogImportantMessage("Leave LicenseAcquisition.AcquireLicenseReactively()");
        }
        async public void DomainJoinReactively(PlayReadyDomainJoinServiceRequest domainJoinRequest)
        {
            TestLogger.LogImportantMessage("Enter DomainJoin.DomainJoinReactively()");
            Exception exception = null;

            try
            {
                _serviceRequest = domainJoinRequest;

                TestLogger.LogMessage("DomainJoinRequest values before challenge:");
                DumpDomainJoinServiceRequest(domainJoinRequest);

                if (RequestConfigData.ManualEnabling)
                {
                    TestLogger.LogMessage("Manually posting the request...");

                    HttpHelper httpHelper = new HttpHelper(domainJoinRequest);
                    await httpHelper.GenerateChallengeAndProcessResponse();
                }
                else
                {
                    TestLogger.LogMessage("Begin domain join service request...");
                    await domainJoinRequest.BeginServiceRequest();
                }
            }
            catch (Exception ex)
            {
                TestLogger.LogMessage("Saving exception..");
                exception = ex;
            }
            finally
            {
                TestLogger.LogMessage("Post-DomainJoin Values:");
                DumpDomainJoinServiceRequest(domainJoinRequest);
                if (exception == null)
                {
                    TestLogger.LogMessage("ResponseCustomData   = " + domainJoinRequest.ResponseCustomData);
                }

                DomainJoinServiceRequestCompleted(domainJoinRequest, exception);
            }

            TestLogger.LogImportantMessage("Leave DomainJoin.DomainJoinReactively()");
        }
Пример #9
0
        private void TestActionFinished(bool bResult, object context)
        {
            if (_meteringAndReportResult != null)
            {
                if (GlobalData.g_itemPage.bMeteringOrSecureStopButtonClicked == true)
                {
                    TestLogger.LogMeteringData("MeterData(" + _meteringAndReportResult.PlayCount.ToString() + ")");
                }
            }

            if (bResult)
            {
                TestLogger.LogImportantMessage("TestActionFinished successfully");
            }
            else
            {
                TestLogger.LogError("TestActionFinished with error!!!");
            }
        }
Пример #10
0
        protected override void DomainLeaveServiceRequestCompleted(PlayReadyDomainLeaveServiceRequest sender, Exception hrCompletionStatus)
        {
            TestLogger.LogMessage("Enter DomainLeaveAndReportResult.DomainLeaveServiceRequestCompleted()");

            if (hrCompletionStatus == null)
            {
                TestLogger.LogImportantMessage("***Domain Leave succeeded***");
                _reportResult(true, null);
            }
            else
            {
                if (!PerformEnablingActionIfRequested(hrCompletionStatus))
                {
                    TestLogger.LogError("DomainLeaveServiceRequestCompleted ERROR: " + hrCompletionStatus.ToString());
                    _reportResult(false, null);
                }
            }

            TestLogger.LogMessage("Leave DomainLeaveAndReportResult.DomainLeaveServiceRequestCompleted()");
        }
        private void ProvactiveActionFinished(bool bResult, object resultContext)
        {
            SampleDataItem item = (SampleDataItem)resultContext;

            if (bResult)
            {
                TestLogger.LogImportantMessage("ActionFinished successfully");
            }
            else
            {
                TestLogger.LogError("ActionFinished with error!!!");
                return;
            }

            if (item.IsRootLicense == false &&
                item.IsLDL == false &&
                playbackContents != null)
            {
                playbackContents[item.PlayerIndex].Play(item.Content);
            }
        }
        protected override void IndivServiceRequestCompleted(PlayReadyIndividualizationServiceRequest sender, Exception hrCompletionStatus)
        {
            TestLogger.LogMessage("Enter IndivAndReportResult.IndivServiceRequestCompleted()");

            if (hrCompletionStatus == null)
            {
                TestLogger.LogImportantMessage("***Indiv succeeded***");
                TestLogger.LogImportantMessage("PlayReady security version " + Windows.Media.Protection.PlayReady.PlayReadyStatics.PlayReadySecurityVersion);
                _reportResult(true, null);
            }
            else
            {
                //needed for LA revoke->Re-Indiv->LA sequence
                if (!PerformEnablingActionIfRequested(hrCompletionStatus))
                {
                    TestLogger.LogError("IndivServiceRequestCompleted ERROR: " + hrCompletionStatus.ToString());
                    _reportResult(false, null);
                }
            }

            TestLogger.LogMessage("Leave IndivAndReportResult.IndivServiceRequestCompleted()");
        }
Пример #13
0
        public void  HandleRevocationProactively()
        {
            try
            {
                PlayReadyRevocationServiceRequest request = new PlayReadyRevocationServiceRequest();
                HandleRevocationReactively(request);
            }
            catch (Exception ex)
            {
                if (ex.HResult == ServiceRequest.MSPR_E_NEEDS_INDIVIDUALIZATION)
                {
                    PlayReadyIndividualizationServiceRequest indivServiceRequest = new PlayReadyIndividualizationServiceRequest();

                    RequestChain requestChain = new RequestChain(indivServiceRequest);
                    requestChain.FinishAndReportResult(new ReportResultDelegate(HandleIndivServiceRequest_Finished));
                }
                else
                {
                    TestLogger.LogImportantMessage("HandleRevocationProactively failed:" + ex.HResult);
                }
            }
        }
        static public void DumpContentHeaderValues(PlayReadyContentHeader contentHeader)
        {
            TestLogger.LogMessage(" ");
            TestLogger.LogImportantMessage("Content header values:");
            if (contentHeader == null)
            {
                return;
            }
            TestLogger.LogMessage("CustomAttributes :" + contentHeader.CustomAttributes);
            TestLogger.LogMessage("DecryptorSetup   :" + contentHeader.DecryptorSetup.ToString());
            TestLogger.LogMessage("DomainServiceId  :" + contentHeader.DomainServiceId.ToString());
            TestLogger.LogMessage("EncryptionType   :" + contentHeader.EncryptionType.ToString());
            for (int i = 0; i < contentHeader.KeyIds.Length; i++)
            {
                TestLogger.LogImportantMessage("KeyId " + i + "       :" + contentHeader.KeyIds[i].ToString());
                TestLogger.LogImportantMessage("KeyIdString " + i + " :" + contentHeader.KeyIdStrings[i]);
            }

            if (contentHeader.LicenseAcquisitionUrl != null)
            {
                TestLogger.LogImportantMessage("LicenseAcquisitionUrl :" + contentHeader.LicenseAcquisitionUrl.ToString());
            }
        }
Пример #15
0
        async public void DomainLeaveReactively(PlayReadyDomainLeaveServiceRequest domainLeaveRequest)
        {
            TestLogger.LogImportantMessage("Enter DomainLeave.DomainLeaveReactively()");
            Exception exception = null;

            try
            {
                _serviceRequest = domainLeaveRequest;
                domainLeaveRequest.DomainServiceId = RequestConfigData.DomainServiceId;
                domainLeaveRequest.DomainAccountId = RequestConfigData.DomainAccountId;
                domainLeaveRequest.Uri             = RequestConfigData.DomainUri;

                if (RequestConfigData.ManualEnabling)
                {
                    TestLogger.LogMessage("Manually posting the request...");

                    HttpHelper httpHelper = new HttpHelper(domainLeaveRequest);
                    await httpHelper.GenerateChallengeAndProcessResponse();
                }
                else
                {
                    TestLogger.LogImportantMessage("Begin domain leave service request...");
                    await domainLeaveRequest.BeginServiceRequest();
                }
            }
            catch (Exception ex)
            {
                TestLogger.LogImportantMessage("Saving exception..");
                exception = ex;
            }
            finally
            {
                DomainLeaveServiceRequestCompleted(domainLeaveRequest, exception);
            }

            TestLogger.LogImportantMessage("Leave DomainLeave.DomainLeaveReactively()");
        }
Пример #16
0
 virtual protected void MediaEnded(object sender, RoutedEventArgs e)
 {
     UnhookEventHandlers();
     TestLogger.LogMessage("MediaEnded: " + ((MediaElement)sender).Source);
     TestLogger.LogImportantMessage("Playback succeeded");
 }