Example #1
0
        public void CreateOwnedObjects_MultipleAtEnd()
        {
            CheckDisposed();

            StTxtPara para = (StTxtPara)m_currentText.ParagraphsOS[0];

            // We use m_archivedText with para from m_currentText to create a footnote.
            // This simulates a "paragraph with footnote" just copied from m_archivedText.
            // The important thing here is that we have a footnote that links to a
            // different owner.
            m_inMemoryCache.AddFootnote(m_archivedFootnotesOS, para, 0, null);
            m_inMemoryCache.AddFootnote(m_archivedFootnotesOS, para, para.Contents.Length, null);
            int paraLen = para.Contents.Length;

            NMock.DynamicMock mockIObjectMetaInfoProvider =
                new DynamicMock(typeof(IObjectMetaInfoProvider));
            mockIObjectMetaInfoProvider.Strict = true;
            mockIObjectMetaInfoProvider.ExpectAndReturn("NextFootnoteIndex", 0, new object[] { para, 0 });
            mockIObjectMetaInfoProvider.SetupResult("FootnoteMarkerStyle", "Note Marker");

            Assert.AreEqual(0, m_currentFootnotesOS.Count);

            para.CreateOwnedObjects(0, paraLen,
                                    (IObjectMetaInfoProvider)mockIObjectMetaInfoProvider.MockInstance);

            mockIObjectMetaInfoProvider.Verify();

            Assert.AreEqual(2, m_currentFootnotesOS.Count);

            VerifyFootnote((StFootnote)m_currentFootnotesOS[0], para, 0);
            VerifyFootnote((StFootnote)m_currentFootnotesOS[1], para, paraLen - 1);
        }
Example #2
0
        public void CreateOwnedObjects_MultipleFootnotesStartInMiddle()
        {
            CheckDisposed();

            StTxtPara para = m_inMemoryCache.AddParaToMockedText(m_currentText.Hvo, "Normal");

            m_inMemoryCache.AddRunToMockedPara(para, "This is the paragraph of the second section " +
                                               "of the first chapter of Genesis. This is here so that we have enough characters " +
                                               "to insert footnotes into it.", null);
            m_inMemoryCache.AddFootnote(m_currentFootnotesOS, para, 0, null);
            m_inMemoryCache.AddFootnote(m_currentFootnotesOS, para, 20, null);
            StFootnote footnotePrev  = (StFootnote)m_currentFootnotesOS[0];
            StFootnote footnoteAfter = (StFootnote)m_currentFootnotesOS[1];

            para = (StTxtPara)m_currentText.ParagraphsOS[0];
            m_archivedFootnotesOS = m_inMemoryCache.CreateArbitraryFootnoteSequence(m_archivedText);
            StFootnote footnote1 = m_inMemoryCache.AddFootnote(m_archivedFootnotesOS, para, 4, null);

            footnote1.DisplayFootnoteMarker    = true;
            footnote1.DisplayFootnoteReference = false;
            StFootnote footnote2 = m_inMemoryCache.AddFootnote(m_archivedFootnotesOS, para, 7, null);

            footnote2.DisplayFootnoteMarker    = false;
            footnote2.DisplayFootnoteReference = true;
            Cache.ChangeOwner(para.Hvo, m_currentText.Hvo, (int)StText.StTextTags.kflidParagraphs, 0);
            NMock.DynamicMock mockIObjectMetaInfoProvider =
                new DynamicMock(typeof(IObjectMetaInfoProvider));
            mockIObjectMetaInfoProvider.Strict = true;
            mockIObjectMetaInfoProvider.ExpectAndReturn("NextFootnoteIndex", 1, new object[] { para, 0 });
            mockIObjectMetaInfoProvider.SetupResult("FootnoteMarkerStyle", "Note Marker");

            para.CreateOwnedObjects(0, 10,
                                    (IObjectMetaInfoProvider)mockIObjectMetaInfoProvider.MockInstance);

            mockIObjectMetaInfoProvider.Verify();
            Assert.AreEqual(4, m_currentFootnotesOS.Count);
            IStFootnote testFootnote = m_currentFootnotesOS[0];

            Assert.AreEqual(footnotePrev.Hvo, testFootnote.Hvo, "Previous footnote shouldn't have moved");

            testFootnote = m_currentFootnotesOS[1];
            VerifyFootnote(testFootnote, para, 4);
            Assert.IsTrue(testFootnote.DisplayFootnoteMarker);
            Assert.IsFalse(testFootnote.DisplayFootnoteReference);

            testFootnote = m_currentFootnotesOS[2];
            VerifyFootnote(testFootnote, para, 7);
            Assert.IsFalse(testFootnote.DisplayFootnoteMarker);
            Assert.IsTrue(testFootnote.DisplayFootnoteReference);

            testFootnote = m_currentFootnotesOS[3];
            Assert.AreEqual(footnoteAfter.Hvo, testFootnote.Hvo,
                            "Following footnote should have gotten bumped two places");
        }
Example #3
0
        public void CreateOwnedObjects_MultipleFootnotesStartAt0()
        {
            CheckDisposed();

            StTxtPara  para      = (StTxtPara)m_archivedText.ParagraphsOS[0];
            StFootnote footnote1 = m_inMemoryCache.AddFootnote(m_archivedFootnotesOS, para, 0, null);

            footnote1.DisplayFootnoteMarker    = true;
            footnote1.DisplayFootnoteReference = false;
            StFootnote footnote2 = m_inMemoryCache.AddFootnote(m_archivedFootnotesOS, para, 1, null);

            footnote2.DisplayFootnoteMarker    = false;
            footnote2.DisplayFootnoteReference = false;
            StFootnote footnote3 = m_inMemoryCache.AddFootnote(m_archivedFootnotesOS, para, 2, null);

            footnote3.DisplayFootnoteMarker    = true;
            footnote3.DisplayFootnoteReference = true;
            Cache.ChangeOwner(para.Hvo, m_currentText.Hvo, (int)StText.StTextTags.kflidParagraphs, 0);
            NMock.DynamicMock mockIObjectMetaInfoProvider =
                new DynamicMock(typeof(IObjectMetaInfoProvider));
            mockIObjectMetaInfoProvider.Strict = true;
            mockIObjectMetaInfoProvider.ExpectAndReturn("NextFootnoteIndex", 0, new object[] { para, 0 });
            mockIObjectMetaInfoProvider.SetupResult("FootnoteMarkerStyle", "Note Marker");

            para.CreateOwnedObjects(0, 3,
                                    (IObjectMetaInfoProvider)mockIObjectMetaInfoProvider.MockInstance);

            mockIObjectMetaInfoProvider.Verify();
            Assert.AreEqual(3, m_currentFootnotesOS.Count);

            IStFootnote testFootnote = m_currentFootnotesOS[0];

            Assert.IsTrue(testFootnote.DisplayFootnoteMarker);
            Assert.IsFalse(testFootnote.DisplayFootnoteReference);
            VerifyFootnote(testFootnote, para, 0);

            testFootnote = m_currentFootnotesOS[1];
            Assert.IsFalse(testFootnote.DisplayFootnoteMarker);
            Assert.IsFalse(testFootnote.DisplayFootnoteReference);
            VerifyFootnote(testFootnote, para, 1);

            testFootnote = m_currentFootnotesOS[2];
            Assert.IsTrue(testFootnote.DisplayFootnoteMarker);
            Assert.IsTrue(testFootnote.DisplayFootnoteReference);
            VerifyFootnote(testFootnote, para, 2);
        }
Example #4
0
        public void CreateOwnedObjects_Footnote()
        {
            CheckDisposed();

            StTxtPara  para     = (StTxtPara)m_archivedText.ParagraphsOS[0];
            StFootnote footnote = m_inMemoryCache.AddFootnote(m_archivedFootnotesOS, para, 0, null);

            Cache.ChangeOwner(para.Hvo, m_currentText.Hvo, (int)StText.StTextTags.kflidParagraphs, 0);
            NMock.DynamicMock mockIObjectMetaInfoProvider =
                new DynamicMock(typeof(IObjectMetaInfoProvider));
            mockIObjectMetaInfoProvider.Strict = true;
            mockIObjectMetaInfoProvider.ExpectAndReturn("NextFootnoteIndex", 0, new object[] { para, 0 });
            mockIObjectMetaInfoProvider.SetupResult("FootnoteMarkerStyle", "Note Marker");

            para.CreateOwnedObjects(0, 1,
                                    (IObjectMetaInfoProvider)mockIObjectMetaInfoProvider.MockInstance);

            mockIObjectMetaInfoProvider.Verify();
            Assert.AreEqual(1, m_currentFootnotesOS.Count);
            VerifyFootnote((StFootnote)m_currentFootnotesOS[0], para, 0);
        }
Example #5
0
        public void CreateOwnedObjects_Picture()
        {
            CheckDisposed();

            StTxtPara para = (StTxtPara)m_currentText.ParagraphsOS[0];

            ITsString     tss     = para.Contents.UnderlyingTsString;
            ITsStrFactory factory = TsStrFactoryClass.Create();

            using (DummyFileMaker fileMaker = new DummyFileMaker("junk.jpg", true))
            {
                CmPicture pict = new CmPicture(Cache, fileMaker.Filename,
                                               factory.MakeString("Test picture", Cache.DefaultVernWs),
                                               StringUtils.LocalPictures);
                pict.InsertORCAt(tss, 0, para.Hvo,
                                 (int)StTxtPara.StTxtParaTags.kflidContents, 0);
                tss = para.Contents.UnderlyingTsString;
                int cchOrigStringLength = tss.Length;

                NMock.DynamicMock mockIObjectMetaInfoProvider =
                    new DynamicMock(typeof(IObjectMetaInfoProvider));
                mockIObjectMetaInfoProvider.Strict = true;
                mockIObjectMetaInfoProvider.ExpectAndReturn(1, "PictureFolder", StringUtils.LocalPictures);
                para.CreateOwnedObjects(0, 1,
                                        (IObjectMetaInfoProvider)mockIObjectMetaInfoProvider.MockInstance);
                mockIObjectMetaInfoProvider.Verify();

                tss = para.Contents.UnderlyingTsString;
                Assert.AreEqual(cchOrigStringLength, tss.Length);
                string sObjData = tss.get_Properties(0).GetStrPropValue((int)FwTextPropType.ktptObjData);
                Guid   guid     = MiscUtils.GetGuidFromObjData(sObjData.Substring(1));

                byte odt = Convert.ToByte(sObjData[0]);
                Assert.AreEqual((byte)FwObjDataTypes.kodtGuidMoveableObjDisp, odt);
                Assert.IsTrue(Cache.GetGuidFromId(pict.Hvo) != guid, "New guid was not inserted");
            }
        }