<!DOCTYPE html>
<meta charset="utf-8">
<title>Async Clipboard write (dt/text) -> read (dt/text) tests</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
async_test(function(t) {
  var test_data = "Clipboard write (dt/text) -> read (dt/text) test data";
  var cb = navigator.clipboard;
  var dt = new DataTransfer();
  dt.items.add(test_data, "text/plain");

  cb.write(dt).then(t.step_func(() => {
    cb.read().then(t.step_func((data) => {
      assert_equals(data.items.length, 1);
      data.items[0].getAsString(t.step_func((s) => {
        assert_equals(s, test_data);
        t.done();
      }));
    }), function() {
      t.unreached_func("clipboard.read() fail");
    });
  }), function() {
    t.unreached_func("clipboard.write() fail");
  });
}, "Verify write and read clipboard (DataTransfer/text)");
</script>
Note: This is a manual test because it writes/reads to the shared system
clipboard and thus cannot be run async with other tests that might interact
with the clipboard.
