public void PasteFromClipboard()
        {
            string result = null;

            System.Threading.Thread t = new System.Threading.Thread(() =>
            {
                var pManager = new PersistenceManager();
                var tree     = pManager.NewTree();
                var editor   = new NoteEditor();
                var form     = CreateForm();
                form.Controls.Add(editor);
                var sut     = new ClipboardImagePaster(editor, pManager);
                form.Shown += (sender, args) =>
                {
                    Clipboard.SetImage(Bitmap.FromFile(@"Resources\MapCtrl1.png"));
                    ClipboardImagePaster.PasteFromClipboard(editor, tree);
                    result = editor.HTML;
                    form.Close();
                };
                form.ShowDialog();
            });
            t.SetApartmentState(System.Threading.ApartmentState.STA);
            t.Start();
            t.Join();
            Assert.IsTrue(result.ToLower().Contains("img"));
        }
        public void PasteFromClipboard_WithEmptyClipboard()
        {
            string result = null;

            System.Threading.Thread t = new System.Threading.Thread(() =>
            {
                var pManager = new PersistenceManager();
                var tree     = pManager.NewTree();
                var editor   = new NoteEditor();
                var form     = CreateForm();
                form.Controls.Add(editor);
                var sut     = new ClipboardImagePaster(editor, pManager);
                form.Shown += (sender, args) =>
                {
                    Clipboard.Clear();
                    ClipboardImagePaster.PasteFromClipboard(editor, tree);
                    result = editor.HTML;
                    form.Close();
                };
                form.ShowDialog();
            });
            t.SetApartmentState(System.Threading.ApartmentState.STA);
            t.Start();
            t.Join();
            Assert.IsNull(result);
        }
        public void ClipboardImagePaster_FileDropListWithMixedFiles()
        {
            string result = null;

            System.Threading.Thread t = new System.Threading.Thread(() =>
            {
                var pManager = new PersistenceManager();
                pManager.NewTree();
                var editor = new NoteEditor();
                var form   = CreateForm();
                form.Controls.Add(editor);
                var sut     = new ClipboardImagePaster(editor, pManager);
                form.Shown += (sender, args) =>
                {
                    var fileList = new StringCollection();
                    fileList.Add(Path.GetFullPath(@"Resources\Sample Map.mm"));
                    fileList.Add(Path.GetFullPath(@"Resources\MapCtrl1.png"));
                    Clipboard.SetFileDropList(fileList);
                    editor.Paste();
                    result = editor.HTML;
                    form.Close();
                };
                form.ShowDialog();
            });
            t.SetApartmentState(System.Threading.ApartmentState.STA);
            t.Start();
            t.Join();
            Assert.IsTrue(result.ToLower().Contains("img"));
            Assert.AreEqual(1, result.ToLower().Where(a => a == '.').Count());
        }