| OLD | NEW | 
|    1 // Copyright 2016 The Chromium Authors. All rights reserved. |    1 // Copyright 2016 The Chromium Authors. All rights reserved. | 
|    2 // Use of this source code is governed by a BSD-style license that can be |    2 // Use of this source code is governed by a BSD-style license that can be | 
|    3 // found in the LICENSE file. |    3 // found in the LICENSE file. | 
|    4  |    4  | 
|    5 #include <stdint.h> |    5 #include <stdint.h> | 
|    6 #include <utility> |    6 #include <utility> | 
|    7  |    7  | 
|    8 #include "base/bind.h" |    8 #include "base/bind.h" | 
|    9 #include "base/macros.h" |    9 #include "base/macros.h" | 
|   10 #include "base/run_loop.h" |   10 #include "base/run_loop.h" | 
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   51   std::vector<std::string> GetAvailableFormatMimeTypes() { |   51   std::vector<std::string> GetAvailableFormatMimeTypes() { | 
|   52     uint64_t sequence_num = 999999; |   52     uint64_t sequence_num = 999999; | 
|   53     Array<String> types; |   53     Array<String> types; | 
|   54     types.push_back(kUninitialized); |   54     types.push_back(kUninitialized); | 
|   55     clipboard_->GetAvailableMimeTypes( |   55     clipboard_->GetAvailableMimeTypes( | 
|   56         Clipboard::Type::COPY_PASTE, |   56         Clipboard::Type::COPY_PASTE, | 
|   57         &sequence_num, &types); |   57         &sequence_num, &types); | 
|   58     return types.To<std::vector<std::string>>(); |   58     return types.To<std::vector<std::string>>(); | 
|   59   } |   59   } | 
|   60  |   60  | 
|   61   bool GetDataOfType(uint64_t sequence_number, const std::string& mime_type, |   61   bool GetDataOfType(const std::string& mime_type, std::string* data) { | 
|   62                      std::string* data) { |  | 
|   63     bool valid = false; |   62     bool valid = false; | 
|   64     Array<uint8_t> raw_data; |   63     Array<uint8_t> raw_data; | 
|   65     clipboard_->ReadMimeType( |   64     uint64_t sequence_number = 0; | 
|   66         sequence_number, Clipboard::Type::COPY_PASTE, mime_type, |   65     clipboard_->ReadClipboardData(Clipboard::Type::COPY_PASTE, mime_type, | 
|   67         &valid, &raw_data); |   66                                   &sequence_number, &raw_data); | 
|   68     valid = valid && !raw_data.is_null(); |   67     valid = !raw_data.is_null(); | 
|   69     *data = raw_data.is_null() ? "" : raw_data.To<std::string>(); |   68     *data = raw_data.is_null() ? "" : raw_data.To<std::string>(); | 
|   70     return valid; |   69     return valid; | 
|   71   } |   70   } | 
|   72  |   71  | 
|   73   void SetStringText(const std::string& data) { |   72   void SetStringText(const std::string& data) { | 
|   74     uint64_t sequence_number; |   73     uint64_t sequence_number; | 
|   75     Map<String, Array<uint8_t>> mime_data; |   74     Map<String, Array<uint8_t>> mime_data; | 
|   76     mime_data[Clipboard::MIME_TYPE_TEXT] = Array<uint8_t>::From(data); |   75     mime_data[mojom::kMimeTypeText] = Array<uint8_t>::From(data); | 
|   77     clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE, |   76     clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE, | 
|   78                                    std::move(mime_data), |   77                                    std::move(mime_data), | 
|   79                                    &sequence_number); |   78                                    &sequence_number); | 
|   80   } |   79   } | 
|   81  |   80  | 
|   82  protected: |   81  protected: | 
|   83   mojom::ClipboardPtr clipboard_; |   82   mojom::ClipboardPtr clipboard_; | 
|   84  |   83  | 
|   85   DISALLOW_COPY_AND_ASSIGN(ClipboardAppTest); |   84   DISALLOW_COPY_AND_ASSIGN(ClipboardAppTest); | 
|   86 }; |   85 }; | 
|   87  |   86  | 
|   88 TEST_F(ClipboardAppTest, EmptyClipboardOK) { |   87 TEST_F(ClipboardAppTest, EmptyClipboardOK) { | 
|   89   EXPECT_EQ(0ul, GetSequenceNumber()); |   88   EXPECT_EQ(0ul, GetSequenceNumber()); | 
|   90   EXPECT_TRUE(GetAvailableFormatMimeTypes().empty()); |   89   EXPECT_TRUE(GetAvailableFormatMimeTypes().empty()); | 
|   91   std::string data; |   90   std::string data; | 
|   92   EXPECT_FALSE(GetDataOfType(0ul, Clipboard::MIME_TYPE_TEXT, &data)); |   91   EXPECT_FALSE(GetDataOfType(mojom::kMimeTypeText, &data)); | 
|   93 } |   92 } | 
|   94  |   93  | 
|   95 TEST_F(ClipboardAppTest, CanReadBackText) { |   94 TEST_F(ClipboardAppTest, CanReadBackText) { | 
|   96   std::string data; |   95   std::string data; | 
|   97   EXPECT_EQ(0ul, GetSequenceNumber()); |   96   EXPECT_EQ(0ul, GetSequenceNumber()); | 
|   98   EXPECT_FALSE(GetDataOfType(0ul, Clipboard::MIME_TYPE_TEXT, &data)); |   97   EXPECT_FALSE(GetDataOfType(mojom::kMimeTypeText, &data)); | 
|   99  |   98  | 
|  100   SetStringText(kPlainTextData); |   99   SetStringText(kPlainTextData); | 
|  101   EXPECT_EQ(1ul, GetSequenceNumber()); |  100   EXPECT_EQ(1ul, GetSequenceNumber()); | 
|  102  |  101  | 
|  103   EXPECT_TRUE(GetDataOfType(1ul, Clipboard::MIME_TYPE_TEXT, &data)); |  102   EXPECT_TRUE(GetDataOfType(mojom::kMimeTypeText, &data)); | 
|  104   EXPECT_EQ(kPlainTextData, data); |  103   EXPECT_EQ(kPlainTextData, data); | 
|  105 } |  104 } | 
|  106  |  105  | 
|  107 TEST_F(ClipboardAppTest, CanSetMultipleDataTypesAtOnce) { |  106 TEST_F(ClipboardAppTest, CanSetMultipleDataTypesAtOnce) { | 
|  108   Map<String, Array<uint8_t>> mime_data; |  107   Map<String, Array<uint8_t>> mime_data; | 
|  109   mime_data[Clipboard::MIME_TYPE_TEXT] = |  108   mime_data[mojom::kMimeTypeText] = | 
|  110       Array<uint8_t>::From(std::string(kPlainTextData)); |  109       Array<uint8_t>::From(std::string(kPlainTextData)); | 
|  111   mime_data[Clipboard::MIME_TYPE_HTML] = |  110   mime_data[mojom::kMimeTypeHTML] = | 
|  112       Array<uint8_t>::From(std::string(kHtmlData)); |  111       Array<uint8_t>::From(std::string(kHtmlData)); | 
|  113  |  112  | 
|  114   uint64_t sequence_num = 0; |  113   uint64_t sequence_num = 0; | 
|  115   clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE, |  114   clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE, | 
|  116                                  std::move(mime_data), |  115                                  std::move(mime_data), | 
|  117                                  &sequence_num); |  116                                  &sequence_num); | 
|  118   EXPECT_EQ(1ul, sequence_num); |  117   EXPECT_EQ(1ul, sequence_num); | 
|  119  |  118  | 
|  120   std::string data; |  119   std::string data; | 
|  121   EXPECT_TRUE(GetDataOfType(1ul, Clipboard::MIME_TYPE_TEXT, &data)); |  120   EXPECT_TRUE(GetDataOfType(mojom::kMimeTypeText, &data)); | 
|  122   EXPECT_EQ(kPlainTextData, data); |  121   EXPECT_EQ(kPlainTextData, data); | 
|  123   EXPECT_TRUE(GetDataOfType(1ul, Clipboard::MIME_TYPE_HTML, &data)); |  122   EXPECT_TRUE(GetDataOfType(mojom::kMimeTypeHTML, &data)); | 
|  124   EXPECT_EQ(kHtmlData, data); |  123   EXPECT_EQ(kHtmlData, data); | 
|  125 } |  124 } | 
|  126  |  125  | 
|  127 TEST_F(ClipboardAppTest, CanClearClipboardWithZeroArray) { |  126 TEST_F(ClipboardAppTest, CanClearClipboardWithZeroArray) { | 
|  128   std::string data; |  127   std::string data; | 
|  129   SetStringText(kPlainTextData); |  128   SetStringText(kPlainTextData); | 
|  130   EXPECT_EQ(1ul, GetSequenceNumber()); |  129   EXPECT_EQ(1ul, GetSequenceNumber()); | 
|  131  |  130  | 
|  132   EXPECT_TRUE(GetDataOfType(1ul, Clipboard::MIME_TYPE_TEXT, &data)); |  131   EXPECT_TRUE(GetDataOfType(mojom::kMimeTypeText, &data)); | 
|  133   EXPECT_EQ(kPlainTextData, data); |  132   EXPECT_EQ(kPlainTextData, data); | 
|  134  |  133  | 
|  135   Map<String, Array<uint8_t>> mime_data; |  134   Map<String, Array<uint8_t>> mime_data; | 
|  136   uint64_t sequence_num = 0; |  135   uint64_t sequence_num = 0; | 
|  137   clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE, |  136   clipboard_->WriteClipboardData(Clipboard::Type::COPY_PASTE, | 
|  138                                  std::move(mime_data), |  137                                  std::move(mime_data), | 
|  139                                  &sequence_num); |  138                                  &sequence_num); | 
|  140  |  139  | 
|  141   EXPECT_EQ(2ul, sequence_num); |  140   EXPECT_EQ(2ul, sequence_num); | 
|  142   EXPECT_FALSE(GetDataOfType(2ul, Clipboard::MIME_TYPE_TEXT, &data)); |  141   EXPECT_FALSE(GetDataOfType(mojom::kMimeTypeText, &data)); | 
|  143 } |  142 } | 
|  144  |  143  | 
|  145 }  // namespace clipboard |  144 }  // namespace clipboard | 
|  146 }  // namespace mus |  145 }  // namespace mus | 
| OLD | NEW |