Ejemplo n.º 1
0
        /// <summary>
        /// Appends SharePoint Version to ASPX pages
        /// </summary>
        /// <param name="version"></param>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public static string UpdatePageToIncludeVersion(SPPlatformVersion version, string fileName)
        {
            string versionToAppend = string.Empty;

            switch (version)
            {
            case SPPlatformVersion.SP2010:
                versionToAppend = "2010";
                break;

            case SPPlatformVersion.SP2013:
                versionToAppend = "2013";
                break;

            case SPPlatformVersion.SP2016:
                versionToAppend = "2016";
                break;

            case SPPlatformVersion.SP2019:
                versionToAppend = "2019";
                break;

            case SPPlatformVersion.SPO:
                versionToAppend = "SPO";
                break;

            default:
                versionToAppend = "NA";
                break;
            }

            return(fileName.Replace(".aspx", $"-{versionToAppend}.aspx"));
        }
        // Common Tests

        /// <summary>
        /// Standard Transform Test
        /// </summary>
        /// <param name="version"></param>
        /// <param name="fullPageLayoutMapping"></param>
        /// <param name="pageNameStartsWith"></param>
        private void TransformPage(SPPlatformVersion version, string fullPageLayoutMapping = "", string pageNameStartsWith = "Common")
        {
            using (var targetClientContext = TestCommon.CreateClientContext(TestCommon.AppSetting("SPOTargetSiteUrl")))
            {
                using (var sourceClientContext = TestCommon.CreateSPPlatformClientContext(version, TransformType.PublishingPage))
                {
                    var pageTransformator = new PublishingPageTransformator(sourceClientContext, targetClientContext, fullPageLayoutMapping);
                    pageTransformator.RegisterObserver(new MarkdownObserver(folder: TestContext.ResultsDirectory, includeVerbose: true));
                    pageTransformator.RegisterObserver(new UnitTestLogObserver());

                    var pages = sourceClientContext.Web.GetPagesFromList("Pages", pageNameStartsWith);
                    pages.FailTestIfZero();

                    foreach (var page in pages)
                    {
                        var pageName = page.FieldValues["FileLeafRef"].ToString();

                        PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page)
                        {
                            // If target page exists, then overwrite it
                            Overwrite = true,

                            // Don't log test runs
                            SkipTelemetry = true,

                            //Permissions are unlikely to work given cross domain
                            KeepPageSpecificPermissions = false,

                            //Update target to include SP version
                            TargetPageName = TestCommon.UpdatePageToIncludeVersion(version, pageName)
                        };

                        Console.WriteLine("SharePoint Version: {0}", pti.SourceVersion);

                        pti.MappingProperties["SummaryLinksToQuickLinks"] = "true";
                        pti.MappingProperties["UseCommunityScriptEditor"] = "true";

                        var result = pageTransformator.Transform(pti);

                        Assert.IsTrue(!string.IsNullOrEmpty(result));
                    }

                    pageTransformator.FlushObservers();
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Returns a connection based on SharePoint version
        /// </summary>
        /// <param name="version"></param>
        /// <param name="isPublishingSite"></param>
        /// <returns></returns>
        public static ClientContext CreateSPPlatformClientContext(SPPlatformVersion version, TransformType transformType)
        {
            if (transformType == TransformType.PublishingPage)
            {
                switch (version)
                {
                case SPPlatformVersion.SP2010:
                    return(InternalCreateContext(AppSetting("SPOnPremPublishingSite2010"), SourceContextMode.OnPremises));

                case SPPlatformVersion.SP2013:
                    return(InternalCreateContext(AppSetting("SPOnPremPublishingSite2013"), SourceContextMode.OnPremises));

                case SPPlatformVersion.SP2016:
                    return(InternalCreateContext(AppSetting("SPOnPremPublishingSite2016"), SourceContextMode.OnPremises));

                case SPPlatformVersion.SP2019:
                    return(InternalCreateContext(AppSetting("SPOnPremPublishingSite2019"), SourceContextMode.OnPremises));

                default:
                case SPPlatformVersion.SPO:
                    return(InternalCreateContext(AppSetting("SPOPublishingSite"), SourceContextMode.SPO));
                }
            }
            else
            {
                switch (version)
                {
                case SPPlatformVersion.SP2010:
                    return(InternalCreateContext(AppSetting("SPOnPremTeamSite2010"), SourceContextMode.OnPremises));

                case SPPlatformVersion.SP2013:
                    return(InternalCreateContext(AppSetting("SPOnPremTeamSite2013"), SourceContextMode.OnPremises));

                case SPPlatformVersion.SP2016:
                    return(InternalCreateContext(AppSetting("SPOnPremTeamSite2016"), SourceContextMode.OnPremises));

                case SPPlatformVersion.SP2019:
                    return(InternalCreateContext(AppSetting("SPOnPremTeamSite2019"), SourceContextMode.OnPremises));

                default:
                case SPPlatformVersion.SPO:
                    return(InternalCreateContext(AppSetting("SPOTeamSite"), SourceContextMode.SPO));
                }
            }
        }
        /// <summary>
        /// Export workaround tests
        /// </summary>
        /// <param name="version"></param>
        /// <param name="pageNameStartsWith"></param>
        private void ExportWebPartByWorkaround(SPPlatformVersion version, string pageNameStartsWith = "Common")
        {
            using (var context = TestCommon.CreateSPPlatformClientContext(version, TransformType.PublishingPage))
            {
                var pages = context.Web.GetPagesFromList("Pages", pageNameStartsWith);

                foreach (var page in pages)
                {
                    page.EnsureProperties(p => p.File, p => p.File.ServerRelativeUrl);

                    TestBasePage testBase        = new TestBasePage(page, page.File, null, null);
                    var          webPartEntities = testBase.LoadPublishingPageFromWebServices(page.File.ServerRelativeUrl);

                    foreach (var webPart in webPartEntities)
                    {
                        var result = testBase.ExportWebPartXmlWorkaround(page.File.ServerRelativeUrl, webPart.Id.ToString());

                        Assert.IsTrue(!string.IsNullOrEmpty(result));
                    }
                }
            }
        }
        /// <summary>
        /// Standard Load Web Part Document with Web Services Test
        /// </summary>
        /// <param name="version"></param>
        /// <param name="pageNameStartsWith"></param>
        private void LoadWebPartDocumentViaWebServicesTest(SPPlatformVersion version, string pageNameStartsWith = "Common")
        {
            using (var context = TestCommon.CreateSPPlatformClientContext(version, TransformType.PublishingPage))
            {
                var pages = context.Web.GetPagesFromList("Pages", pageNameStartsWith);

                foreach (var page in pages)
                {
                    page.EnsureProperties(p => p.File, p => p.File.ServerRelativeUrl);

                    List <string> search = new List <string>()
                    {
                        "WebPartZone"
                    };

                    //Should be one
                    TestBasePage testBase = new TestBasePage(page, page.File, null, null);
                    var          result   = testBase.LoadPublishingPageFromWebServices(page.File.ServerRelativeUrl);

                    Assert.IsTrue(result.Count > 0);
                }
            }
        }