Exemple #1
0
        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);
        }
Exemple #2
0
 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
        }
Exemple #4
0
        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);
        }