Exemplo n.º 1
0
        public void RenderSingleMessage24HourTimeTest()
        {
            IConversation        conversation   = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.UnknownEagle);
            IConversationMessage message        = conversation.GetMessage(0);
            MockDisplayOptions   displayOptions = new MockDisplayOptions();

            displayOptions.TimeDisplayFormat = TimeDisplayFormat.HourMinSec24h;

            ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation);

            List <Inline> inlineListExpected = new List <Inline>();
            Span          messagePrefix      = new Span();

            messagePrefix.Inlines.Add(new Bold(new Run("Unknown Sender")));
            messagePrefix.Inlines.Add(new Run(" (\u200E20:38:17\u202C)"));
            messagePrefix.Inlines.Add(new Run(": "));
            inlineListExpected.Add(messagePrefix);
            inlineListExpected.Add(new ConversationContentRun(message.MessageContents));

            List <Inline> inlineListActual = new List <Inline>();

            inlineListActual.AddRange(renderer.ConversationMessageToInlines(message));

            VerifyInlineListsMatch(inlineListExpected, inlineListActual);
        }
        private void VerifyRenderedMessagesMatchExpected(DummyPhoneNumberId phoneNumberId, string renderedExpected)
        {
            IDisplayOptionsReadOnly displayOptions = new MockDisplayOptions();
            IConversation           conversation   = DummyConversationDataGenerator.GetSingleConversation(phoneNumberId);
            IConversationRenderer   renderer       = new ConversationRendererHtml(displayOptions, conversation, new AttachmentExportLocator(null));

            string renderedActual = renderer.RenderMessagesAsString(ConversationRendererBase.RenderAllMessages);

            Assert.AreEqual(renderedExpected, renderedActual);
        }
        private void VerifyRenderedMessagesMatchExpected(Color color, string cssAttributeExpected)
        {
            IDisplayOptionsReadOnly           displayOptions = new MockDisplayOptions();
            IConversation                     conversation   = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.ObamaCell);
            ConversationRendererHtml_Accessor renderer       = new ConversationRendererHtml_Accessor(displayOptions, conversation, new AttachmentExportLocator(null));

            string cssAttributeActual = renderer.ColorToCssAttribute(color);

            Assert.AreEqual(cssAttributeExpected, cssAttributeActual);
        }
        private ConversationWindowModel GetEmptyPopulatedConversationWindowModel()
        {
            IDisplayOptions         displayOptions     = new MockDisplayOptions();
            IPhoneSelectOptions     phoneSelectOptions = new MockPhoneSelectOptions();
            ConversationWindowModel model = new ConversationWindowModel(displayOptions, phoneSelectOptions);

            model.ConversationManager = DummyConversationDataGenerator.GetConversationManagerEmpty();

            return(model);
        }
        private ConversationWindowModel GetPopulatedConversationWindowModel()
        {
            IDisplayOptions         displayOptions     = new MockDisplayOptions();
            IPhoneSelectOptions     phoneSelectOptions = new MockPhoneSelectOptions();
            ConversationWindowModel model = new ConversationWindowModel(displayOptions, phoneSelectOptions);
            IConversationManager    conversationManager = GetConversationManager(displayOptions);

            model.ConversationManager = conversationManager;

            return(model);
        }
Exemplo n.º 6
0
        public void GetSenderColorUnknownContactTest()
        {
            IConversation        conversation    = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.UnknownEagle);
            IConversationMessage incomingMessage = conversation.GetMessage(0);
            MockDisplayOptions   displayOptions  = new MockDisplayOptions();

            ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation);

            System.Windows.Media.Color incomingMessageColor = renderer.GetSenderDisplayColor(incomingMessage);

            Assert.IsNotNull(incomingMessageColor);
        }
        public void ExportAttachmentErrorStillExportsConversation()
        {
            MockFileSystem           mockFileSystem = new MockFileSystem();
            ConversationExporterHtml exporter       = new ConversationExporterHtml(mockFileSystem);

            IConversation      conversation       = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.FrankieCoolPicsCell);
            MockDisplayOptions mockDisplayOptions = new MockDisplayOptions();
            List <ExportError> exportErrors       = exporter.Export(conversation, mockDisplayOptions, @"C:\fakepath\backup\exports\frankie-coolpics_9-12-2012.html");

            Assert.AreEqual(1, exportErrors.Count);
            Assert.IsTrue(mockFileSystem.FileExists(@"C:\fakepath\backup\exports\frankie-coolpics_9-12-2012.html"));
        }
Exemplo n.º 8
0
        public void GetSenderColorMergedConversationTest()
        {
            IConversation        conversation          = DummyConversationDataGenerator.GetMergedConversation(DummyContactId.Davola);
            IConversationMessage cellIncomingMessage   = conversation.GetMessage(0);
            IConversationMessage iPhoneIncomingMessage = conversation.GetMessage(11);
            MockDisplayOptions   displayOptions        = new MockDisplayOptions();

            ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation);

            System.Windows.Media.Color cellColor   = renderer.GetSenderDisplayColor(cellIncomingMessage);
            System.Windows.Media.Color iPhoneColor = renderer.GetSenderDisplayColor(iPhoneIncomingMessage);

            Assert.AreEqual(cellColor, iPhoneColor);
        }
        public void ChatConversationImageAttachmentNoLastNameTest()
        {
            MockFileSystem           mockFileSystem         = new MockFileSystem();
            ConversationExporterHtml exporter               = new ConversationExporterHtml(mockFileSystem);
            const string             attachmentPathOriginal = @"C:\fakepath\backup\082308302382";

            StreamWriter sw = new StreamWriter(mockFileSystem.CreateNewFile(attachmentPathOriginal));

            sw.Write("This is attachment file data!");

            var mockContactA = new Mock <IContact>();

            mockContactA.Setup(x => x.FirstName).Returns("James");
            mockContactA.Setup(x => x.LastName).Returns((string)null);
            var mockContactB = new Mock <IContact>();

            mockContactB.Setup(x => x.FirstName).Returns("Peter");
            mockContactB.Setup(x => x.LastName).Returns("Horn");
            ContactList contactList = new ContactList(new IContact[] { mockContactA.Object, mockContactB.Object });

            var mockConversation = new Mock <IConversation>();

            mockConversation.Setup(x => x.AssociatedContacts).Returns(contactList);

            List <IMessageAttachment> attachments = new List <IMessageAttachment>();

            attachments.Add(new MessageAttachment(1, AttachmentType.Image, attachmentPathOriginal, "IMG_0123.JPG"));

            var mockMessage = new Mock <IConversationMessage>();

            mockMessage.Setup(x => x.Attachments).Returns(attachments);
            mockMessage.Setup(x => x.HasAttachments()).Returns(true);

            List <IConversationMessage> messages = new List <IConversationMessage>(new IConversationMessage[] { mockMessage.Object });

            mockConversation.Setup(x => x.GetEnumerator()).Returns(messages.GetEnumerator());
            mockConversation.Setup(x => x.MessageCount).Returns(1);

            MockDisplayOptions mockDisplayOptions = new MockDisplayOptions();
            List <ExportError> exportErrors       = exporter.Export(mockConversation.Object,
                                                                    mockDisplayOptions,
                                                                    @"C:\fakepath\backup\exports\dummy-chat_2014-11-02.html");

            Assert.AreEqual(1, mockFileSystem.DirectoryCount);
            Assert.AreEqual(3, mockFileSystem.FileCount);
            Assert.IsTrue(mockFileSystem.DirectoryExists(@"C:\fakepath\backup\exports\dummy-chat_2014-11-02_attachments"));
            Assert.IsTrue(mockFileSystem.FileExists(@"C:\fakepath\backup\exports\dummy-chat_2014-11-02_attachments\IMG_0123.JPG"));
            Assert.IsTrue(mockFileSystem.FileExists(@"C:\fakepath\backup\exports\dummy-chat_2014-11-02.html"));
        }
Exemplo n.º 10
0
        public void MultiDayConversationTest()
        {
            IConversation   conversation   = GetMultiDayConversation();
            IDisplayOptions displayOptions = new MockDisplayOptions();

            ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation);

            List <Paragraph> paragraphsActual = renderer.RenderMessagesAsParagraphs(ConversationRendererRichText.RenderAllMessages);

            List <Paragraph> paragraphsExpected = GetMultiDayConversationRenderingExpected(conversation, renderer);

            VerifyParagraphListsEqual(paragraphsExpected, paragraphsActual);

            paragraphsActual = renderer.RenderMessagesAsParagraphs(ConversationRendererRichText.RenderAllMessages);
            Assert.AreEqual(0, paragraphsActual.Count);
        }
        public void RenderMessageWithAttachmentTest()
        {
            string renderedExpected = @"<p>
<span class=""date"">Sunday, Sep 9, 2012</span><br />
<span style=""color:rgb(0,0,210);""><span class=""senderName"">Frankie Coolpics</span> <span class=""timestamp"">(<span dir=""ltr"" lang=""en"">8:34:15 PM</span>)</span>: </span>Check this shit out!<br />
<a href=""FrankieCoolpics_attachments\IMG_0036.JPG"" target=""_blank""><img class=""attachmentImage"" src=""FrankieCoolpics_attachments\IMG_0036.JPG"" /></a><br />
<span style=""color:rgb(210,0,0);""><span class=""senderName"">Me</span> <span class=""timestamp"">(<span dir=""ltr"" lang=""en"">8:34:30 PM</span>)</span>: </span>Crazy!
</p>
";
            IDisplayOptionsReadOnly displayOptions          = new MockDisplayOptions();
            AttachmentExportLocator attachmentExportLocator = new AttachmentExportLocator(@"C:\backup\export");

            attachmentExportLocator.AddFileExportLocation(@"C:\fakepath\backup\082308302382", @"C:\backup\export\FrankieCoolpics_attachments\IMG_0036.JPG");
            IConversation         conversation = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.FrankieCoolPicsCell);
            IConversationRenderer renderer     = new ConversationRendererHtml(displayOptions, conversation, attachmentExportLocator);

            string renderedActual = renderer.RenderMessagesAsString(ConversationRendererBase.RenderAllMessages);

            Assert.AreEqual(renderedExpected, renderedActual);
        }
        public void VideoAttachmentTest()
        {
            MockFileSystem           mockFileSystem = new MockFileSystem();
            ConversationExporterHtml exporter       = new ConversationExporterHtml(mockFileSystem);

            StreamWriter sw = new StreamWriter(mockFileSystem.CreateNewFile(@"C:\fakepath\backup\056798632135464"));

            sw.Write("This is attachment file data!");

            IConversation      conversation       = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.JerryCoolVidsCell);
            MockDisplayOptions mockDisplayOptions = new MockDisplayOptions();
            List <ExportError> exportErrors       = exporter.Export(conversation, mockDisplayOptions, @"C:\fakepath\backup\exports\Jerry-Coolvids_9-13-2012.html");

            Assert.AreEqual(0, exportErrors.Count);
            Assert.AreEqual(1, mockFileSystem.DirectoryCount);
            Assert.AreEqual(4, mockFileSystem.FileCount); // 3 exported files + dummy source attachment
            Assert.IsTrue(mockFileSystem.DirectoryExists(@"C:\fakepath\backup\exports\Jerry-Coolvids_9-13-2012_attachments"));
            Assert.IsTrue(mockFileSystem.FileExists(@"C:\fakepath\backup\exports\Jerry-Coolvids_9-13-2012_attachments\video_icon.png"));
            Assert.IsTrue(mockFileSystem.FileExists(@"C:\fakepath\backup\exports\Jerry-Coolvids_9-13-2012_attachments\VIDEO_0015.MOV"));
            Assert.IsTrue(mockFileSystem.FileExists(@"C:\fakepath\backup\exports\Jerry-Coolvids_9-13-2012.html"));
        }
        public void ImageAttachmentTest()
        {
            MockFileSystem           mockFileSystem         = new MockFileSystem();
            ConversationExporterHtml exporter               = new ConversationExporterHtml(mockFileSystem);
            const string             attachmentPathOriginal = @"C:\fakepath\backup\082308302382";

            StreamWriter sw = new StreamWriter(mockFileSystem.CreateNewFile(attachmentPathOriginal));

            sw.Write("This is attachment file data!");

            IConversation      conversation       = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.FrankieCoolPicsCell);
            MockDisplayOptions mockDisplayOptions = new MockDisplayOptions();
            List <ExportError> exportErrors       = exporter.Export(conversation, mockDisplayOptions, @"C:\fakepath\backup\exports\frankie-coolpics_9-12-2012.html");

            Assert.AreEqual(0, exportErrors.Count);
            Assert.AreEqual(1, mockFileSystem.DirectoryCount);
            Assert.AreEqual(3, mockFileSystem.FileCount);
            Assert.IsTrue(mockFileSystem.DirectoryExists(@"C:\fakepath\backup\exports\frankie-coolpics_9-12-2012_attachments"));
            Assert.IsTrue(mockFileSystem.FileExists(@"C:\fakepath\backup\exports\frankie-coolpics_9-12-2012_attachments\IMG_0036.JPG"));
            Assert.IsTrue(mockFileSystem.FileExists(@"C:\fakepath\backup\exports\frankie-coolpics_9-12-2012.html"));
        }
Exemplo n.º 14
0
        public void NoMessageConversationTest()
        {
            IConversation   conversation   = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.NeverTexterCell);
            IDisplayOptions displayOptions = new MockDisplayOptions();

            ConversationRendererRichText renderer = new ConversationRendererRichText(displayOptions, conversation);

            List <Paragraph> paragraphsActual = renderer.RenderMessagesAsParagraphs(ConversationRendererRichText.RenderAllMessages);

            Assert.AreEqual(1, paragraphsActual.Count);

            Paragraph paragraphExpected = new Paragraph(new Italic(new Run(ConversationRendererRichText_Accessor._noConversationMessage)));

            VerifyParagraphsEqual(paragraphExpected, paragraphsActual[0]);

            //
            // Calling RenderMessages after messages have been rendered should return empty list.
            //

            paragraphsActual = renderer.RenderMessagesAsParagraphs(ConversationRendererRichText.RenderAllMessages);
            Assert.AreEqual(0, paragraphsActual.Count);
        }
Exemplo n.º 15
0
        public void RenderIncrementallyTest()
        {
            IConversation   conversation   = GetMultiDayConversation();
            IDisplayOptions displayOptions = new MockDisplayOptions();

            ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation);

            List <Paragraph> paragraphsActual = new List <Paragraph>();

            const int MessageRenderSize = 1;

            List <Paragraph> paragraphsCurrent;

            while (renderer.HasUnprocessedMessages)
            {
                paragraphsCurrent = renderer.RenderMessagesAsParagraphs(MessageRenderSize);
                paragraphsActual.AddRange(paragraphsCurrent);
            }

            List <Paragraph> paragraphsExpected = GetMultiDayConversationRenderingExpected(conversation, renderer);

            VerifyParagraphListsEqual(paragraphsExpected, paragraphsActual);
        }
Exemplo n.º 16
0
        public void SingleMessageConversationTest()
        {
            IConversation   conversation   = DummyConversationDataGenerator.GetSingleConversation(DummyPhoneNumberId.UnknownEagle);
            IDisplayOptions displayOptions = new MockDisplayOptions();

            ConversationRendererRichText_Accessor renderer = new ConversationRendererRichText_Accessor(displayOptions, conversation);

            List <Paragraph> paragraphsActual = renderer.RenderMessagesAsParagraphs(ConversationRendererRichText.RenderAllMessages);

            Assert.AreEqual(1, paragraphsActual.Count);

            IConversationMessage message = conversation.GetMessage(0);

            Paragraph paragraphExpected = new Paragraph();

            paragraphExpected.Inlines.Add(ConversationRendererRichText_Accessor.DateAsInline(message.Timestamp));
            paragraphExpected.Inlines.Add(new LineBreak());
            paragraphExpected.Inlines.AddRange(renderer.ConversationMessageToInlines(message));

            VerifyParagraphsEqual(paragraphExpected, paragraphsActual[0]);

            paragraphsActual = renderer.RenderMessagesAsParagraphs(ConversationRendererRichText.RenderAllMessages);
            Assert.AreEqual(0, paragraphsActual.Count);
        }