//protected bool CheckFiles([NotNull] ITestResourceContext data, ITestOutputContext output)
        //{
        //  Assert.ArgumentNotNull(data, nameof(data));
        //
        //  // TODO: rework to use data.SitecoreInfo.StaticFiles API
        //  if (!data.SitecoreInfo.Files.Exists(@"sitecore\RedirectUrlPage.aspx"))
        //  {
        //    output.Error(GetMissingRedirectPageMessage(), url: Link);
        //
        //    return false;
        //  }
        //
        //  return true;
        //}

        protected bool CheckLinkProvider([NotNull] IInstanceResourceContext data, [NotNull] ITestOutputContext output)
        {
            var managerXPath        = "/configuration/sitecore/linkManager";
            var configuration       = data.SitecoreInfo.Configuration;
            var defaultProviderName = EcmHelper.GetAttributeValue(configuration, managerXPath, "defaultProvider");

            if (string.IsNullOrEmpty(defaultProviderName))
            {
                return(true);
            }

            var providerXPath = $"/configuration/sitecore/linkManager/providers/add[@name='{defaultProviderName}']";
            var alwaysIncludeServerUrlValue = EcmHelper.GetAttributeValue(configuration, providerXPath, "alwaysIncludeServerUrl");

            bool alwaysIncludeServerUrl;

            if (!bool.TryParse(alwaysIncludeServerUrlValue, out alwaysIncludeServerUrl) || !alwaysIncludeServerUrl)
            {
                return(true);
            }

            Report(output, GetLinkProviderSettingMessage());

            return(false);
        }
        public override void Process(IInstanceResourceContext data, ITestOutputContext output)
        {
            Assert.ArgumentNotNull(data, nameof(data));

            var ecmVersion = EcmHelper.GetEcmVersion(data);

            if (ecmVersion == null)
            {
                return;
            }

            if (ecmVersion.Major == 3 && ecmVersion.Minor >= 3)
            {
                Error(data, output, "exm.web");
                Error(data, output, "EXM.CryptographicKey");
                Error(data, output, "EXM.AuthenticationKey");

                if (data.Databases.ConnectionStrings.ContainsKey("master"))
                {
                    Error(data, output, "exm.master");
                }

                if (data.ServerRoles.Contains(ServerRole.ContentDelivery) &&
                    !data.ServerRoles.Contains(ServerRole.ContentManagement))
                {
                    Error(data, output, "EXM.InternalApiKey");
                    Error(data, output, "EmailCampaignClientService");
                }

                return;
            }

            if (!data.ServerRoles.Contains(ServerRole.ContentManagement))
            {
                return;
            }

            if (ecmVersion.Major == 3 && ecmVersion.Minor >= 1)
            {
                if (!data.Databases.Sql.DatabaseNames.Contains("exm.dispatch"))
                {
                    output.Error(GetErrorMessage("exm.dispatch"));
                }
            }

            if (ecmVersion.Major == 2 && ecmVersion.Minor == 2 || ecmVersion.Major == 3 && ecmVersion.Minor == 0)
            {
                if (!data.Databases.Mongo.DatabaseNames.Contains("ecm.dispatch"))
                {
                    output.Error(GetErrorMessage("ecm.dispatch"));
                }
            }
        }
        public override void Process(IInstanceResourceContext data, ITestOutputContext output)
        {
            Assert.ArgumentNotNull(data, nameof(data));

            var ecmVersion = EcmHelper.GetEcmVersion(data);

            if (ecmVersion == null || ecmVersion.Major != 3 || ecmVersion.Minor != 1)
            {
                return;
            }

            var logs       = data.Logs.GetSitecoreLogEntries(LogLevel.Error);
            var errorFound = logs.Any(entry => entry.Exception.Message.Contains("Could not load type 'Sitecore.Modules.EmailCampaign.Layouts.SubscriptionForm'"));

            if (errorFound)
            {
                Report(output);
            }
        }
Example #4
0
        /// <inheritdoc />
        public override bool IsActual(IReadOnlyCollection <ServerRole> roles, ISitecoreVersion sitecoreVersion, IInstanceResourceContext data)
        {
            if (EcmHelper.GetEcmVersion(data) == null)
            {
                return(false);
            }

            try
            {
                if (data.SitecoreInfo.Configuration.SelectSingleElement("/configuration/sitecore/TypeResolver") == null)
                {
                    return(false);
                }
            }
            catch
            {
                // ignored
            }

            return(true);
        }
        public override void Process(IInstanceResourceContext data, ITestOutputContext output)
        {
            Assert.ArgumentNotNull(data, nameof(data));

            var ecmVersion = EcmHelper.GetEcmVersion(data);

            Assert.IsNotNull(ecmVersion);

            var majorMinor = ecmVersion.MajorMinorInt;

            if (majorMinor >= 31)
            {
                var httpHandlersNode = data.SitecoreInfo.Configuration.SelectSingleNode($"/configuration/system.web/httpHandlers/add[@path='{ecmSpeakHandlerPath}']");
                if (httpHandlersNode != null)
                {
                    output.Warning(GetErrorMessage("<httpHandlers>", false));
                }
                var handlersNode = data.SitecoreInfo.Configuration.SelectSingleNode($"/configuration/system.webSerber/handlers/add[@path='{ecmSpeakHandlerPath}']");
                if (handlersNode != null)
                {
                    output.Warning(GetErrorMessage("<handlers>", false));
                }
            }
            if (majorMinor == 22 || majorMinor == 30)
            {
                var httpHandlersNode = data.SitecoreInfo.Configuration.SelectSingleNode($"/configuration/system.web/httpHandlers/add[@path='{ecmSpeakHandlerPath}']");
                if (httpHandlersNode == null)
                {
                    output.Warning(GetErrorMessage("<httpHandlers>", true));
                }
                var handlersNode = data.SitecoreInfo.Configuration.SelectSingleNode($"/configuration/system.webSerber/handlers/add[@path='{ecmSpeakHandlerPath}']");
                if (handlersNode == null)
                {
                    output.Warning(GetErrorMessage("<handlers>", true));
                }
            }
        }
 protected override bool IsActual(IInstanceResourceContext data)
 {
     return(EcmHelper.GetEcmVersion(data) != null);
 }
        protected override bool IsActual(IInstanceResourceContext data)
        {
            var exmMajor = EcmHelper.GetEcmVersion(data)?.Major;

            return(exmMajor == 3 || exmMajor == 2);
        }