Пример #1
0
        /// <summary>
        ///     Test monitoring the clipboard
        /// </summary>
        /// <returns></returns>
        //[WpfFact]
        public async Task TestClipboardMonitor_WaitForCopy()
        {
            var tcs          = new TaskCompletionSource <bool>();
            var subscription = ClipboardMonitor.OnUpdate.Subscribe(clipboard =>
            {
                Log.Debug().WriteLine("Formats {0}", string.Join(",", clipboard.Formats));
                Log.Debug().WriteLine("Owner {0}", clipboard.OwnerHandle);
                Log.Debug().WriteLine("Sequence {0}", clipboard.Id);

                if (clipboard.Formats.Contains("PNG"))
                {
                    using (ClipboardNative.Lock())
                    {
                        var stream = ClipboardNative.GetAsStream("PNG");
                        using (var fileStream = File.Create(@"D:\test.png"))
                        {
                            stream.CopyTo(fileStream);
                        }
                    }
                }
                tcs.TrySetResult(true);
            });

            await tcs.Task;

            subscription.Dispose();
        }
Пример #2
0
        public async Task TestClipboardStore_MemoryStream()
        {
            const string testString = "Dapplo.Windows.Tests.ClipboardTests";
            var          testStream = new MemoryStream();
            var          bytes      = Encoding.Unicode.GetBytes(testString + "\0");

            Assert.Equal(testString, Encoding.Unicode.GetString(bytes).TrimEnd('\0'));
            testStream.Write(bytes, 0, bytes.Length);

            Assert.Equal(testString, Encoding.Unicode.GetString(testStream.GetBuffer(), 0, (int)testStream.Length).TrimEnd('\0'));

            MemoryStream resultStream;

            using (ClipboardNative.Lock())
            {
                ClipboardNative.Clear();
                ClipboardNative.SetAsStream("CF_UNICODETEXT", testStream);
            }
            await Task.Delay(1000);

            using (ClipboardNative.Lock())
            {
                resultStream = ClipboardNative.GetAsStream("CF_UNICODETEXT");
            }
            Assert.Equal(testString, Encoding.Unicode.GetString(resultStream.GetBuffer(), 0, (int)resultStream.Length).TrimEnd('\0'));
        }
Пример #3
0
        public async Task TestClipboardMonitor_Text()
        {
            const string testString    = "Dapplo.Windows.Tests.ClipboardTests";
            bool         hasNewContent = false;
            var          subscription  = ClipboardMonitor.OnUpdate.Where(clipboard => clipboard.Formats.Contains("TEST_FORMAT")).Subscribe(clipboard =>
            {
                Log.Debug().WriteLine("Detected change {0}", string.Join(",", clipboard.Formats));
                Log.Debug().WriteLine("Owner {0}", clipboard.OwnerHandle);
                Log.Debug().WriteLine("Sequence {0}", clipboard.Id);

                hasNewContent = true;
            });

            using (ClipboardNative.Lock())
            {
                ClipboardNative.Clear();
                ClipboardNative.SetAsUnicodeString(testString, "TEST_FORMAT");
            }
            await Task.Delay(1000);

            subscription.Dispose();

            // Doesn't work on AppVeyor!!
            Assert.True(hasNewContent);
        }
Пример #4
0
 /// <summary>
 ///     Test if the clipboard contains files
 /// </summary>
 /// <returns></returns>
 //[WpfFact]
 public void TestClipboard_Filenames()
 {
     using (ClipboardNative.Lock())
     {
         var filenames = ClipboardNative.GetFilenames().ToList();
         Assert.True(filenames.Any());
     }
 }
Пример #5
0
        public async Task TestClipboardStore_String()
        {
            const string testString = "Dapplo.Windows.Tests.ClipboardTests";

            using (ClipboardNative.Lock())
            {
                ClipboardNative.Clear();
                ClipboardNative.SetAsUnicodeString(testString);
            }
            await Task.Delay(1000);

            using (ClipboardNative.Lock())
            {
                Assert.Equal(testString, ClipboardNative.GetAsUnicodeString());
            }
        }
Пример #6
0
        public void TestClipboard_RegisterFormat()
        {
            string format = "DAPPLO.DOPY" + ClipboardNative.SequenceNumber;

            // Register the format
            var id1 = ClipboardNative.RegisterFormat(format);
            // Register the format again
            var id2 = ClipboardNative.RegisterFormat(format);

            Assert.Equal(id1, id2);

            // Make sure it works
            using (ClipboardNative.Lock())
            {
                ClipboardNative.Clear();
                ClipboardNative.SetAsUnicodeString("Blub", format);
            }
        }