public void CanProvisionObjects() { var template = new ProvisioningTemplate(); Page page = new Page { Layout = WikiPageLayout.TwoColumns, Overwrite = true, Url = "{site}/sitepages/pagetest.aspx" }; var webPart = new WebPart { Column = 1, Row = 1, Contents = webpartcontents, Title = "Script Test" }; page.WebParts.Add(webPart); template.Pages.Add(page); using (var ctx = TestCommon.CreateClientContext()) { var parser = new TokenParser(ctx.Web, template); new ObjectPages().ProvisionObjects(ctx.Web, template, parser, new ProvisioningTemplateApplyingInformation()); ctx.Load(ctx.Web, w => w.ServerRelativeUrl); ctx.ExecuteQueryRetry(); var file = ctx.Web.GetFileByServerRelativeUrl(UrlUtility.Combine(ctx.Web.ServerRelativeUrl, "/SitePages/pagetest.aspx")); ctx.Load(file, f => f.Exists); ctx.ExecuteQueryRetry(); Assert.IsTrue(file.Exists); var wps = ctx.Web.GetWebParts(UrlUtility.Combine(ctx.Web.ServerRelativeUrl, "/SitePages/pagetest.aspx")); Assert.IsTrue(wps.Any()); } }
public void CanAddWebPartsToForms() { var template = new ProvisioningTemplate(); FileSystemConnector connector = new FileSystemConnector(resourceFolder + @"\..", ""); template.Connector = connector; var webPart = new WebPart { Column = 1, Row = 1, Contents = webpartcontents, Title = "Script Editor", Order = 0, Zone = "Main" }; var myfile = new PnP.Framework.Provisioning.Model.File() { Overwrite = false, Src = "EditForm.aspx", Folder = "SitePages/Forms" }; myfile.WebParts.Add(webPart); template.Files.Add(myfile); using (var ctx = TestCommon.CreateClientContext()) { var parser = new TokenParser(ctx.Web, template); new ObjectFiles().ProvisionObjects(ctx.Web, template, parser, new ProvisioningTemplateApplyingInformation()); ctx.Web.EnsureProperties(w => w.ServerRelativeUrl); var file = ctx.Web.GetFileByServerRelativeUrl( UrlUtility.Combine(ctx.Web.ServerRelativeUrl, UrlUtility.Combine("SitePages/Forms", "EditForm.aspx"))); ctx.Load(file, f => f.Exists); ctx.ExecuteQueryRetry(); // first of all do we even find the form ? Assert.IsTrue(file.Exists); var webParts = file.GetLimitedWebPartManager(PersonalizationScope.Shared).WebParts; ctx.Load(webParts, wp => wp.IncludeWithDefaultProperties(w => w.Id, w => w.WebPart, w => w.WebPart.Title)); ctx.ExecuteQueryRetry(); var webPartsArray = webParts.ToArray(); var webPartExists = false; foreach (var webPartDefinition in webPartsArray) { if (webPartDefinition.WebPart.Title == "Script Editor") { webPartExists = true; // cleanup after ourselves if we can find the webpart... webPartDefinition.DeleteWebPart(); } } ctx.ExecuteQueryRetry(); Assert.IsTrue(webPartExists); } }