Browse Source

fix: clipboard.readBuffer returning empty value (#24454)

Robo 4 years ago
parent
commit
7dd365784d
2 changed files with 4 additions and 25 deletions
  1. 2 3
      shell/common/api/electron_api_clipboard.cc
  2. 2 22
      spec/api-clipboard-spec.js

+ 2 - 3
shell/common/api/electron_api_clipboard.cc

@@ -71,9 +71,8 @@ void Clipboard::WriteBuffer(const std::string& format,
   base::span<const uint8_t> payload_span(
       reinterpret_cast<const uint8_t*>(node::Buffer::Data(buffer)),
       node::Buffer::Length(buffer));
-  writer.WriteData(
-      base::UTF8ToUTF16(ui::ClipboardFormatType::GetType(format).Serialize()),
-      mojo_base::BigBuffer(payload_span));
+  writer.WriteData(base::UTF8ToUTF16(format),
+                   mojo_base::BigBuffer(payload_span));
 }
 
 void Clipboard::Write(const gin_helper::Dictionary& data,

+ 2 - 22
spec/api-clipboard-spec.js

@@ -112,17 +112,11 @@ describe('clipboard module', () => {
     });
   });
 
-  describe('clipboard.writeBuffer(format, buffer)', () => {
+  describe('clipboard.readBuffer(format)', () => {
     it('writes a Buffer for the specified format', function () {
-      if (process.platform !== 'darwin') {
-        // FIXME(alexeykuzmin): Skip the test.
-        // this.skip()
-        return;
-      }
-
       const buffer = Buffer.from('writeBuffer', 'utf8');
       clipboard.writeBuffer('public.utf8-plain-text', buffer);
-      expect(clipboard.readText()).to.equal('writeBuffer');
+      expect(buffer.equals(clipboard.readBuffer('public.utf8-plain-text'))).to.equal(true);
     });
 
     it('throws an error when a non-Buffer is specified', () => {
@@ -131,18 +125,4 @@ describe('clipboard module', () => {
       }).to.throw(/buffer must be a node Buffer/);
     });
   });
-
-  describe('clipboard.readBuffer(format)', () => {
-    before(function () {
-      if (process.platform !== 'darwin') {
-        this.skip();
-      }
-    });
-
-    it('returns a Buffer of the content for the specified format', () => {
-      const buffer = Buffer.from('this is binary', 'utf8');
-      clipboard.writeText(buffer.toString());
-      expect(buffer.equals(clipboard.readBuffer('public.utf8-plain-text'))).to.equal(true);
-    });
-  });
 });