public void BasicOnPremPublishingPageUserMappingDefaultTest() { using (var targetClientContext = TestCommon.CreateClientContext(TestCommon.AppSetting("SPOTargetSiteUrl"))) { using (var sourceClientContext = TestCommon.CreateOnPremisesClientContext()) { //"C:\github\sp-dev-modernization\Tools\SharePoint.Modernization\SharePointPnP.Modernization.Framework.Tests\Transform\Publishing\custompagelayoutmapping.xml" //"C:\temp\onprem-mapping-all-test.xml.xml" var pageTransformator = new PublishingPageTransformator(sourceClientContext, targetClientContext, @"C:\temp\onprem-mapping-all-test.xml"); pageTransformator.RegisterObserver(new MarkdownObserver(folder: "c:\\temp", includeVerbose: true, includeDebugEntries: true)); pageTransformator.RegisterObserver(new UnitTestLogObserver()); //var pages = sourceClientContext.Web.GetPagesFromList("Pages", "Article-2010-Custom"); //var pages = sourceClientContext.Web.GetPagesFromList("Pages", "ArticlePage-2010-Multiple"); //var pages = sourceClientContext.Web.GetPagesFromList("Pages", "Article-2010-Custom-Test3"); //var pages = sourceClientContext.Web.GetPagesFromList("Pages", folder:"News"); //var pages = sourceClientContext.Web.GetPagesFromList("Pages", "Welcome-2013Legacy"); var pages = sourceClientContext.Web.GetPagesFromList("Pages", "Article-Permissions"); pages.FailTestIfZero(); try { foreach (var page in pages) { PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page) { // If target page exists, then overwrite it Overwrite = true, // Don't log test runs SkipTelemetry = true, //Permissions are should work given cross domain with mapping KeepPageSpecificPermissions = true, KeepPageCreationModificationInformation = true }; Console.WriteLine("SharePoint Version: {0}", pti.SourceVersion); pti.MappingProperties["SummaryLinksToQuickLinks"] = "true"; pti.MappingProperties["UseCommunityScriptEditor"] = "true"; var result = pageTransformator.Transform(pti); } pageTransformator.FlushObservers(); } catch { pageTransformator.FlushObservers(); Assert.Fail("Exception occurred"); } } } }
public void BasicOnPremPublishingPageTest() { using (var targetClientContext = TestCommon.CreateClientContext(TestCommon.AppSetting("SPOTargetSiteUrl"))) { using (var sourceClientContext = TestCommon.CreateOnPremisesClientContext()) { //"C:\github\sp-dev-modernization\Tools\SharePoint.Modernization\SharePointPnP.Modernization.Framework.Tests\Transform\Publishing\custompagelayoutmapping.xml" //"C:\temp\onprem-mapping-all-test.xml.xml" var pageTransformator = new PublishingPageTransformator(sourceClientContext, targetClientContext, @"C:\temp\onprem-mapping-all-test.xml"); pageTransformator.RegisterObserver(new MarkdownObserver(folder: "c:\\temp", includeVerbose: true)); pageTransformator.RegisterObserver(new UnitTestLogObserver()); var pages = sourceClientContext.Web.GetPagesFromList("Pages", "Article-SP"); //var pages = sourceClientContext.Web.GetPagesFromList("Pages", folder:"News"); foreach (var page in pages) { 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, //RemoveEmptySectionsAndColumns = false, // Configure the page header, empty value means ClientSidePageHeaderType.None //PageHeader = new ClientSidePageHeader(cc, ClientSidePageHeaderType.None, null), // Replace embedded images and iframes with a placeholder and add respective images and video web parts at the bottom of the page // HandleWikiImagesAndVideos = false, // Callout to your custom code to allow for title overriding //PageTitleOverride = titleOverride, // Callout to your custom layout handler //LayoutTransformatorOverride = layoutOverride, // Callout to your custom content transformator...in case you fully want replace the model //ContentTransformatorOverride = contentOverride, }; pti.MappingProperties["SummaryLinksToQuickLinks"] = "true"; pti.MappingProperties["UseCommunityScriptEditor"] = "true"; var result = pageTransformator.Transform(pti); } pageTransformator.FlushObservers(); } } }
public void PublishingPageUrlTest() { using (var targetClientContext = TestCommon.CreateClientContext("https://capadevtest.sharepoint.com/sites/PnPSauceModern")) { using (var sourceClientContext = TestCommon.CreateClientContext(TestCommon.AppSetting("SPODevSiteUrl"))) { var pageTransformator = new PublishingPageTransformator(sourceClientContext, targetClientContext); pageTransformator.RegisterObserver(new MarkdownObserver(folder: "c:\\temp", includeVerbose: true)); //pageTransformator.RegisterObserver(new MarkdownToSharePointObserver(targetClientContext, includeVerbose: true)); var pages = sourceClientContext.Web.GetPagesFromList("Pages", folder: "News", pageNameStartsWith: "Hot-Off-The-Press"); foreach (var page in pages) { PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page) { // If target page exists, then overwrite it Overwrite = true, // Don't log test runs SkipTelemetry = true, KeepPageCreationModificationInformation = false, }; pti.MappingProperties["SummaryLinksToQuickLinks"] = "true"; pti.MappingProperties["UseCommunityScriptEditor"] = "true"; var result = pageTransformator.Transform(pti); } pageTransformator.FlushObservers(); } } }
// 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(); } } }
public void BasicOnPremPublishingPageEnterpriseWikiTest() { using (var targetClientContext = TestCommon.CreateClientContext(TestCommon.AppSetting("SPOTargetSiteUrl"))) { using (var sourceClientContext = TestCommon.CreateOnPremisesEnterpriseWikiClientContext()) { var mapping = "c:\\temp\\custompagelayoutmapping-enterprisewiki-home.xml"; var pageTransformator = new PublishingPageTransformator(sourceClientContext, targetClientContext, mapping); pageTransformator.RegisterObserver(new MarkdownObserver(folder: "c:\\temp", includeVerbose: true)); pageTransformator.RegisterObserver(new UnitTestLogObserver()); var pages = sourceClientContext.Web.GetPagesFromList("Pages", "home"); pages.FailTestIfZero(); foreach (var page in pages) { 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, // Not the home page, its just annoying to have to roll back that page or target TargetPageName = "EnterpriseWikiPage.aspx", }; Console.WriteLine("SharePoint Version: {0}", pti.SourceVersion); pti.MappingProperties["SummaryLinksToQuickLinks"] = "true"; pti.MappingProperties["UseCommunityScriptEditor"] = "true"; var result = pageTransformator.Transform(pti); } pageTransformator.FlushObservers(); } } }
public void BasicOnPremPublishingPage_TermMappingTest() { using (var targetClientContext = TestCommon.CreateClientContext(TestCommon.AppSetting("SPOTargetSiteUrl"))) { using (var sourceClientContext = TestCommon.CreateOnPremisesClientContext()) { var pageTransformator = new PublishingPageTransformator(sourceClientContext, targetClientContext, @"C:\temp\onprem-mapping-all-test.xml"); //pageTransformator.RegisterObserver(new MarkdownObserver(folder: "c:\\temp", includeVerbose: true)); pageTransformator.RegisterObserver(new UnitTestLogObserver(true)); //2013 var pages = sourceClientContext.Web.GetPagesFromList("Pages", folder: "News", pageNameStartsWith: "Our-new-IT-suite-is-mint"); //2010 //var pages = sourceClientContext.Web.GetPagesFromList("Pages", pageNameStartsWith: "Article-2010-Taxonomy"); pages.FailTestIfZero(); foreach (var page in pages) { 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, // Term store mapping TermMappingFile = @"..\..\Transform\Mapping\term_mapping_sample.csv" }; Console.WriteLine("SharePoint Version: {0}", pti.SourceVersion); pti.MappingProperties["SummaryLinksToQuickLinks"] = "true"; pti.MappingProperties["UseCommunityScriptEditor"] = "true"; var result = pageTransformator.Transform(pti); } pageTransformator.FlushObservers(); } } }
public void BasicOnlinePublishingPage_TermDefaultTest() { using (var targetClientContext = TestCommon.CreateClientContext(TestCommon.AppSetting("SPOTargetSiteUrl"))) { using (var sourceClientContext = TestCommon.CreateClientContext(TestCommon.AppSetting("SPODevSiteUrl"))) { var pageTransformator = new PublishingPageTransformator(sourceClientContext, targetClientContext, @"C:\temp\spo-mapping-all-test.xml"); //pageTransformator.RegisterObserver(new MarkdownObserver(folder: "c:\\temp", includeVerbose: true)); pageTransformator.RegisterObserver(new UnitTestLogObserver()); var pages = sourceClientContext.Web.GetPagesFromList("Pages", pageNameStartsWith: "Article-PnP-Example"); pages.FailTestIfZero(); foreach (var page in pages) { 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, // Term store mapping TermMappingFile = string.Empty, //Should process default mapping SkipTermStoreMapping = false }; Console.WriteLine("SharePoint Version: {0}", pti.SourceVersion); pti.MappingProperties["SummaryLinksToQuickLinks"] = "true"; pti.MappingProperties["UseCommunityScriptEditor"] = "true"; var result = pageTransformator.Transform(pti); } pageTransformator.FlushObservers(); } } }
public void PageTransformationDemoTest() { using (var targetClientContext = TestCommon.CreateClientContext("https://bertonline.sharepoint.com/sites/pagetransformationdemotarget")) { //https://bertonline.sharepoint.com/sites/modernizationtestportal using (var sourceClientContext = TestCommon.CreateClientContext("https://bertonline.sharepoint.com/sites/pagetransformationdemoportal")) { //"C:\github\sp-dev-modernization\Tools\SharePoint.Modernization\PnP.Framework.Modernization.Tests\Transform\Publishing\custompagelayoutmapping.xml" //"C:\temp\mappingtest.xml" //@"C:\github\sp-dev-modernization\Tools\SharePoint.Modernization\PnP.Framework.Modernization.Tests\Transform\Publishing\webpartmapping.xml" //var pageTransformator = new PublishingPageTransformator(sourceClientContext, targetClientContext, @"C:\github\sp-dev-modernization\Tools\SharePoint.Modernization\PnP.Framework.Modernization.Tests\Transform\Publishing\webpartmapping.xml", @"C:\github\sp-dev-modernization\Tools\SharePoint.Modernization\PnP.Framework.Modernization.Tests\Transform\Publishing\custompagelayoutmapping.xml"); var pageTransformator = new PublishingPageTransformator(sourceClientContext, targetClientContext, @"E:\CAB2021\contosomapping.xml"); pageTransformator.RegisterObserver(new MarkdownObserver(folder: "E:\\CAB2021", includeVerbose: true)); //pageTransformator.RegisterObserver(new MarkdownToSharePointObserver(targetClientContext, includeVerbose: true)); var pages = sourceClientContext.Web.GetPagesFromList("Pages", "D88_specs"); //var pages = sourceClientContext.Web.GetPagesFromList("Pages", folder:"News"); foreach (var page in pages) { PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page) { // If target page exists, then overwrite it Overwrite = true, // Don't log test runs SkipTelemetry = true, KeepPageCreationModificationInformation = true, PostAsNews = true, PublishCreatedPage = true, }; pti.MappingProperties["SummaryLinksToQuickLinks"] = "true"; pti.MappingProperties["UseCommunityScriptEditor"] = "true"; var result = pageTransformator.Transform(pti); } pageTransformator.FlushObservers(); } } }
public void BasicPublishingPageOnPremisesTest() { using (var targetClientContext = TestCommon.CreateClientContext("https://bertonline.sharepoint.com/sites/modernizationusermapping")) { //https://bertonline.sharepoint.com/sites/modernizationtestportal //using (var sourceClientContext = TestCommon.CreateClientContext(TestCommon.AppSetting("SPODevSiteUrl"))) AuthenticationManager authManager = new AuthenticationManager(); using (var sourceClientContext = authManager.GetOnPremisesContext("https://portal2013.pnp.com/sites/devportal")) { //"C:\github\sp-dev-modernization\Tools\SharePoint.Modernization\SharePointPnP.Modernization.Framework.Tests\Transform\Publishing\custompagelayoutmapping.xml" //"C:\temp\mappingtest.xml" var pageTransformator = new PublishingPageTransformator(sourceClientContext, targetClientContext, @"c:\github\zzscratch\pagelayoutmapping.xml"); pageTransformator.RegisterObserver(new MarkdownObserver(folder: "c:\\temp", includeVerbose: true)); var pages = sourceClientContext.Web.GetPagesFromList("Pages", "bug268"); //var pages = sourceClientContext.Web.GetPagesFromList("Pages", folder:"News"); foreach (var page in pages) { PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page) { // If target page exists, then overwrite it Overwrite = true, // Don't log test runs SkipTelemetry = true, KeepPageCreationModificationInformation = true, PostAsNews = true, UserMappingFile = @"C:\github\pnpframework\src\lib\PnP.Framework.Modernization.Test\Transform\Mapping\usermapping_sample2.csv", //RemoveEmptySectionsAndColumns = false, // Configure the page header, empty value means ClientSidePageHeaderType.None //PageHeader = new ClientSidePageHeader(cc, ClientSidePageHeaderType.None, null), // Replace embedded images and iframes with a placeholder and add respective images and video web parts at the bottom of the page // HandleWikiImagesAndVideos = false, // Callout to your custom code to allow for title overriding //PageTitleOverride = titleOverride, // Callout to your custom layout handler //LayoutTransformatorOverride = layoutOverride, // Callout to your custom content transformator...in case you fully want replace the model //ContentTransformatorOverride = contentOverride, }; pti.MappingProperties["SummaryLinksToQuickLinks"] = "true"; pti.MappingProperties["UseCommunityScriptEditor"] = "true"; var result = pageTransformator.Transform(pti); } pageTransformator.FlushObservers(); } } }
static void Main(string[] args) { SharePointOnlineCredentials creds = new SharePointOnlineCredentials(AppSetting("Username"), ConvertToSecureString(AppSetting("Password"))); using (var targetClientContext = new ClientContext(AppSetting("SPOTargetSiteUrl"))) { targetClientContext.Credentials = creds; using (var sourceClientContext = new ClientContext(AppSetting("SPODevSiteUrl"))) { sourceClientContext.Credentials = creds; //"C:\github\sp-dev-modernization\Tools\SharePoint.Modernization\SharePointPnP.Modernization.Framework.Tests\Transform\Publishing\custompagelayoutmapping.xml" //"C:\temp\mappingtest.xml" //var pageTransformator = new PublishingPageTransformator(sourceClientContext, targetClientContext , @"C:\github\sp-dev-modernization\Tools\SharePoint.Modernization\SharePointPnP.Modernization.Framework.Tests\Transform\Publishing\custompagelayoutmapping.xml"); var pageTransformator = new PublishingPageTransformator(sourceClientContext, targetClientContext, @"C:\temp\mappingtest.xml"); pageTransformator.RegisterObserver(new MarkdownObserver(folder: "c:\\temp")); var pages = sourceClientContext.Web.GetPagesFromList("Pages", pageNameStartsWith: "article"); //var pages = sourceClientContext.Web.GetPagesFromList("Pages", folder:"News"); foreach (var page in pages) { PublishingPageTransformationInformation pti = new PublishingPageTransformationInformation(page) { // If target page exists, then overwrite it Overwrite = true, // Don't log test runs SkipTelemetry = true, //RemoveEmptySectionsAndColumns = false, // Configure the page header, empty value means ClientSidePageHeaderType.None //PageHeader = new ClientSidePageHeader(cc, ClientSidePageHeaderType.None, null), // Replace embedded images and iframes with a placeholder and add respective images and video web parts at the bottom of the page // HandleWikiImagesAndVideos = false, // Callout to your custom code to allow for title overriding //PageTitleOverride = titleOverride, // Callout to your custom layout handler //LayoutTransformatorOverride = layoutOverride, // Callout to your custom content transformator...in case you fully want replace the model //ContentTransformatorOverride = contentOverride, }; pti.MappingProperties["SummaryLinksToQuickLinks"] = "true"; pti.MappingProperties["UseCommunityScriptEditor"] = "true"; var result = pageTransformator.Transform(pti); pageTransformator.FlushObservers(); } pageTransformator.FlushObservers(); } } Console.WriteLine("App Complete, press any key to end!"); Console.ReadKey(); }