public async Task OD_RichText_Get(bool expand, string projectorName) { await ODataTestAsync(async() => { // ALIGN InstallContentType(); var testRoot = CreateTestRoot("Folder1"); var textValue = "Chillwave flexitarian pork belly raw denim."; var editorValue = "{property1: 'Asymmetrical trust fund', property2: 'Crucifix intelligentsia godard'}"; var richTextValue = $"{{\"text\": \"{textValue}\", \"editor\": \"{editorValue}\"}}"; var content = Content.CreateNew("ContentType1", testRoot, "Content1"); content["RichText1"] = new RichTextFieldValue { Text = textValue, Editor = editorValue }; content["RichText2"] = new RichTextFieldValue { Text = textValue, Editor = editorValue }; content.Save(); string queryString; switch (projectorName) { case "Simple": queryString = "?metadata=no&$select=Id,RichText1,RichText2"; break; case "SimpleExpander": queryString = "?metadata=no&$expand=ModifiedBy"; break; case "Expander": queryString = "?metadata=no&$expand=ModifiedBy&$select=Id,RichText1,RichText2"; break; default: throw new NotImplementedException(); } if (expand) { queryString += "&richtexteditor=RichText1"; } // ACTION var response = await ODataGetAsync("/OData.svc/Root/Folder1('Content1')", queryString) .ConfigureAwait(false); // ASSERT var entity = GetEntity(response); Assert.AreEqual(content.Id, entity.Id); if (expand) { Assert.AreEqual(RemoveWhitespaces(richTextValue), RemoveWhitespaces(entity.AllProperties["RichText1"].ToString())); } else { Assert.AreEqual(textValue, entity.AllProperties["RichText1"].ToString()); } Assert.AreEqual(textValue, entity.AllProperties["RichText2"].ToString()); }).ConfigureAwait(false); }
private static string GetRichTextOutput(string fieldName, RichTextFieldValue rtfValue, ODataRequest oDataRequest) { if (!oDataRequest.HasExpandedRichTextField) { return(rtfValue.Text); } return(oDataRequest.AllRichTextFieldExpanded || oDataRequest.ExpandedRichTextFields.Contains(fieldName) ? JsonConvert.SerializeObject(rtfValue) : rtfValue.Text); }
public void FieldIndexHandler_RichTextIndexHandler() { var fieldValue = new RichTextFieldValue { Text = "Lorem ipsum", Editor = "{dolor: 'sit amet'}" }; var fieldValueInIndex = "lorem ipsum"; var fieldValueObject = (object)fieldValue; var snField = new IndexableField(fieldValueObject); var fieldIndexHandler = new RichTextIndexHandler(); fieldIndexHandler.OwnerIndexingInfo = new TestPerfieldIndexingInfoString(); var indexed = fieldIndexHandler.GetIndexFields(snField, out _).ToArray(); var parsed = fieldIndexHandler.Parse(fieldValueInIndex.ToString()); var termValue = fieldIndexHandler.ConvertToTermValue(fieldValueInIndex); Assert.AreEqual(indexed[0].Type, parsed.Type); Assert.AreEqual(fieldValueInIndex, indexed[0].StringValue); Assert.AreEqual(parsed.Type, termValue.Type); // get back is not supported }
public async Task OD_RichText_Modify(string requestBody, string expectedText, string expectedEditor) { await ODataTestAsync(async() => { // ALIGN InstallContentType(); var testRoot = CreateTestRoot("Folder1"); var textValue = "Chillwave flexitarian pork belly raw denim."; var editorValue = "{property1: 'Asymmetrical trust fund', property2: 'Crucifix intelligentsia godard'}"; var richTextValue = $"{{\"text\": \"{textValue}\", \"editor\": \"{editorValue}\"}}"; var content = Content.CreateNew("ContentType1", testRoot, "Content1"); content["RichText1"] = new RichTextFieldValue { Text = textValue, Editor = editorValue }; content.Save(); // ACTION var response = await ODataPutAsync( "/OData.svc/Root/Folder1/Content1", "?metadata=no&$select=Id,RichText1,RichText2&richtexteditor=RichText1", requestBody) .ConfigureAwait(false); // ASSERT var loadedContent = Content.Load("/Root/Folder1/Content1"); var rtf = (RichTextFieldValue)loadedContent["RichText1"]; if (expectedText == null && expectedEditor == null) { Assert.IsNull(rtf); } else { Assert.IsNotNull(rtf); Assert.AreEqual(expectedText, rtf.Text); Assert.AreEqual(expectedEditor, rtf.Editor); } var entity = GetEntity(response); string expectedRichTextValue; if (expectedText != null && expectedEditor != null) { expectedRichTextValue = $"{{\"text\": \"{expectedText}\", \"editor\": \"{expectedEditor}\"}}"; } else if (expectedText == null && expectedEditor != null) { expectedRichTextValue = $"{{\"text\": null, \"editor\": \"{expectedEditor}\"}}"; } else if (expectedText != null && expectedEditor == null) { expectedRichTextValue = $"{{\"text\": \"{expectedText}\", \"editor\": null}}"; } else { expectedRichTextValue = ""; } Assert.AreEqual(content.Id, entity.Id); Assert.AreEqual(RemoveWhitespaces(expectedRichTextValue), RemoveWhitespaces(entity.AllProperties["RichText1"].ToString())); }).ConfigureAwait(false); }