Codebase list mozc / 1ed3119
Deprecate scoped_ptr part 3. With this CL, scoped_ptr is replaced with std::unique_ptr mainly in the following directories. - src/chrome/ - src/client/ - src/composer/ - src/converter/ - src/handwriting/ - src/mac/ - src/prediction/ - src/renderer/ - src/rewriter/ - src/session/ BUG=#219 TEST=unittest REF_BUG=9164610 REF_CL=85037361,85040383,85120717,85123903,85124773,85125239,85125883,85128985,85135671,85140884 Noriyuki Takahashi authored 8 years ago Yohei Yukawa committed 8 years ago
117 changed file(s) with 1008 addition(s) and 931 deletion(s). Raw diff Collapse all Expand all
3232
3333 #include "base/logging.h"
3434 #include "base/mutex.h"
35 #include "base/pepper_file_util.h"
3536 #include "base/port.h"
36 #include "base/pepper_file_util.h"
37 #include "base/scoped_ptr.h"
3837 #include "base/util.h"
3938 #include "chrome/nacl/url_loader_util.h"
4039 #include "net/http_client_pepper.h"
2929 #ifndef MOZC_CHROME_NACL_DICTIONARY_DOWNLOADER_H_
3030 #define MOZC_CHROME_NACL_DICTIONARY_DOWNLOADER_H_
3131
32 #include <memory>
3233 #include <string>
3334
3435 #include "base/port.h"
35 #include "base/scoped_ptr.h"
3636
3737 namespace mozc {
3838 namespace chrome {
6666
6767 private:
6868 class Impl;
69 scoped_ptr<Impl> impl_;
69 std::unique_ptr<Impl> impl_;
7070 DISALLOW_COPY_AND_ASSIGN(DictionaryDownloader);
7171 };
7272
2626 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2727 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2828
29 #include <memory>
2930 #include <string>
3031
32 #include "base/number_util.h"
33 #include "base/pepper_file_util.h"
3134 #include "base/port.h"
3235 #include "base/util.h"
33 #include "base/number_util.h"
34 #include "base/pepper_file_util.h"
3536 #include "chrome/nacl/dictionary_downloader.h"
3637 #include "net/http_client.h"
3738 #include "testing/base/public/gunit.h"
9293
9394 TEST_F(DictionaryDownloaderTest, SimpleTest) {
9495 SetRetryTestCounter(0);
95 scoped_ptr<DictionaryDownloader> downloader;
96 std::unique_ptr<DictionaryDownloader> downloader;
9697 downloader.reset(new DictionaryDownloader(base_url_, "/test01"));
9798 downloader->StartDownload();
9899 while (downloader->GetStatus() != DictionaryDownloader::DOWNLOAD_FINISHED) {
113114
114115 TEST_F(DictionaryDownloaderTest, LargeDataTest) {
115116 SetRetryTestCounter(0);
116 scoped_ptr<DictionaryDownloader> downloader;
117 std::unique_ptr<DictionaryDownloader> downloader;
117118 downloader.reset(new DictionaryDownloader(
118119 base_url_ + "?data=0123456789&times=1000000",
119120 "/large_data"));
130131
131132 TEST_F(DictionaryDownloaderTest, RetryTest) {
132133 SetRetryTestCounter(-1);
133 scoped_ptr<DictionaryDownloader> downloader;
134 std::unique_ptr<DictionaryDownloader> downloader;
134135 downloader.reset(new DictionaryDownloader(base_url_, "/test01"));
135136 downloader->StartDownload();
136137 while (downloader->GetStatus() != DictionaryDownloader::DOWNLOAD_ERROR) {
158159
159160 TEST_F(DictionaryDownloaderTest, DelayTest) {
160161 SetRetryTestCounter(0);
161 scoped_ptr<DictionaryDownloader> downloader;
162 std::unique_ptr<DictionaryDownloader> downloader;
162163 downloader.reset(new DictionaryDownloader(base_url_, "/test01"));
163164 downloader->SetOption(1000, 0, 0, 0, 0);
164165 downloader->StartDownload();
173174
174175 TEST_F(DictionaryDownloaderTest, RetryIntervalTest) {
175176 SetRetryTestCounter(-3);
176 scoped_ptr<DictionaryDownloader> downloader;
177 std::unique_ptr<DictionaryDownloader> downloader;
177178 downloader.reset(new DictionaryDownloader(base_url_, "/test01"));
178179 downloader->SetOption(0, 0, 1000, 0, 3);
179180 downloader->StartDownload();
197198 }
198199
199200 TEST_F(DictionaryDownloaderTest, RetryIntervalBackOffTest) {
200 scoped_ptr<DictionaryDownloader> downloader;
201 std::unique_ptr<DictionaryDownloader> downloader;
201202 SetRetryTestCounter(-3);
202203 downloader.reset(new DictionaryDownloader(base_url_, "/test01"));
203204 downloader->SetOption(0, 0, 1000, 1, 3);
3333 #include <ppapi/cpp/var.h>
3434 #include <ppapi/utility/completion_callback_factory.h>
3535
36 #include <memory>
3637 #include <queue>
3738 #include <string>
3839
238239
239240 while (true) {
240241 bool stopped = false;
241 scoped_ptr<Json::Value> message;
242 std::unique_ptr<Json::Value> message;
242243 message.reset(message_queue_->take(&stopped));
243244 if (stopped) {
244245 LOG(ERROR) << " message_queue_ stopped";
301302 LOG(ERROR) << "PepperFileUtil::ReadBinaryFile error";
302303 return false;
303304 }
304 scoped_ptr<mozc::packed::PackedDataManager>
305 std::unique_ptr<mozc::packed::PackedDataManager>
305306 data_manager(new mozc::packed::PackedDataManager());
306307 if (!data_manager->InitWithZippedData(buffer)) {
307308 LOG(ERROR) << "InitWithZippedData error";
339340 const string data_file_name = "./zipped_data_oss";
340341 #endif // GOOGLE_JAPANESE_INPUT_BUILD
341342 CHECK(HTTPClient::Get(data_file_name, option, &output));
342 scoped_ptr<mozc::packed::PackedDataManager>
343 std::unique_ptr<mozc::packed::PackedDataManager>
343344 data_manager(new mozc::packed::PackedDataManager());
344345 CHECK(data_manager->InitWithZippedData(output));
345346 mozc::packed::RegisterPackedDataManager(data_manager.release());
404405 pp::Instance *instance_;
405406 BlockingQueue<Json::Value *> *message_queue_;
406407 pp::CompletionCallbackFactory<MozcSessionHandlerThread> factory_;
407 scoped_ptr<EngineInterface> engine_;
408 scoped_ptr<SessionHandlerInterface> handler_;
409 scoped_ptr<const UserPOSInterface> user_pos_;
410 #ifdef GOOGLE_JAPANESE_INPUT_BUILD
411 scoped_ptr<SessionUsageObserver> usage_observer_;
412 scoped_ptr<chrome::nacl::DictionaryDownloader> downloader_;
408 std::unique_ptr<EngineInterface> engine_;
409 std::unique_ptr<SessionHandlerInterface> handler_;
410 std::unique_ptr<const UserPOSInterface> user_pos_;
411 #ifdef GOOGLE_JAPANESE_INPUT_BUILD
412 std::unique_ptr<SessionUsageObserver> usage_observer_;
413 std::unique_ptr<chrome::nacl::DictionaryDownloader> downloader_;
413414 string big_dictionary_version_;
414415 #endif // GOOGLE_JAPANESE_INPUT_BUILD
415416 DISALLOW_COPY_AND_ASSIGN(MozcSessionHandlerThread);
424425 private:
425426 void CheckStatusAndStartMozcSessionHandlerThread();
426427
427 scoped_ptr<MozcSessionHandlerThread> mozc_thread_;
428 std::unique_ptr<MozcSessionHandlerThread> mozc_thread_;
428429 BlockingQueue<Json::Value *> message_queue_;
429430
430431 DISALLOW_COPY_AND_ASSIGN(NaclSessionHandlerInstance);
441442 return;
442443 }
443444
444 scoped_ptr<Json::Value> message(new Json::Value);
445 std::unique_ptr<Json::Value> message(new Json::Value);
445446 if (Json::Reader().parse(var_message.AsString(), *message.get())) {
446447 message_queue_.put(message.release());
447448 }
4343
4444 #include "base/logging.h"
4545 #include "base/port.h"
46 #include "base/scoped_ptr.h"
4746
4847 using std::unique_ptr;
4948
3838 #endif // OS_WIN
3939
4040 #include <cstddef>
41 #include <memory>
4142
4243 #include "base/const.h"
4344 #include "base/file_stream.h"
552553 input.set_type(commands::Input::NO_OPERATION);
553554
554555 // Call IPC
555 scoped_ptr<IPCClientInterface> client(
556 std::unique_ptr<IPCClientInterface> client(
556557 client_factory_->NewClient(kServerAddress,
557558 server_launcher_->server_program()));
558559
623624 input.SerializeToString(&request);
624625
625626 // Call IPC
626 scoped_ptr<IPCClientInterface> client(
627 std::unique_ptr<IPCClientInterface> client(
627628 client_factory_->NewClient(kServerAddress,
628629 server_launcher_->server_program()));
629630
3131 #ifndef MOZC_CLIENT_CLIENT_H_
3232 #define MOZC_CLIENT_CLIENT_H_
3333
34 #include <memory>
3435 #include <string>
3536 #include <vector>
37
3638 #include "base/port.h"
37 #include "base/scoped_ptr.h"
3839 #include "client/client_interface.h"
3940 #include "protocol/commands.pb.h"
4041 #include "testing/base/public/gunit_prod.h"
241242
242243 uint64 id_;
243244 IPCClientFactoryInterface *client_factory_;
244 scoped_ptr<ServerLauncherInterface> server_launcher_;
245 scoped_ptr<char[]> result_;
246 scoped_ptr<config::Config> preferences_;
245 std::unique_ptr<ServerLauncherInterface> server_launcher_;
246 std::unique_ptr<char[]> result_;
247 std::unique_ptr<config::Config> preferences_;
247248 int timeout_;
248249 ServerStatus server_status_;
249250 uint32 server_protocol_version_;
3131 // events specified by FLAGS_input file or interactive standard input. Input
3232 // file format is same as one of session/session_client_main.
3333
34 #include <memory>
3435 #include <string>
3536 #include <vector>
3637
99100 CHECK(client.EnsureSession()) << "EnsureSession failed";
100101 CHECK(client.NoOperation()) << "Server is not responding";
101102
102 scoped_ptr<mozc::renderer::RendererClient> renderer_client;
103 std::unique_ptr<mozc::renderer::RendererClient> renderer_client;
103104 mozc::commands::RendererCommand renderer_command;
104105
105106 if (FLAGS_test_renderer) {
174175 mozc::SystemUtil::SetUserProfileDirectory(FLAGS_profile_dir);
175176 }
176177
177 scoped_ptr<mozc::InputFileStream> input_file;
178 std::unique_ptr<mozc::InputFileStream> input_file;
178179 istream *input = NULL;
179180
180181 if (!FLAGS_input.empty()) {
3535 #include <unistd.h>
3636 #endif // OS_WIN
3737
38 #include <memory>
39
3840 #include "base/file_stream.h"
3941 #include "base/flags.h"
4042 #include "base/logging.h"
4143 #include "base/port.h"
42 #include "base/scoped_ptr.h"
4344 #include "base/util.h"
4445 #include "protocol/renderer_command.pb.h"
4546 #include "renderer/renderer_client.h"
7273 CHECK(client.EnsureSession()) << "EnsureSession failed";
7374 CHECK(client.NoOperation()) << "Server is not respoinding";
7475
75 scoped_ptr<mozc::renderer::RendererClient> renderer_client;
76 std::unique_ptr<mozc::renderer::RendererClient> renderer_client;
7677 mozc::commands::RendererCommand renderer_command;
7778
7879 if (FLAGS_test_renderer) {
2929 #include "client/client.h"
3030
3131 #include <map>
32 #include <memory>
3233 #include <string>
3334
3435 #include "base/logging.h"
219220 return client_->EnsureConnection();
220221 }
221222
222 scoped_ptr<IPCClientFactoryMock> client_factory_;
223 scoped_ptr<Client> client_;
223 std::unique_ptr<IPCClientFactoryMock> client_factory_;
224 std::unique_ptr<Client> client_;
224225 TestServerLauncher *server_launcher_;
225226 int version_diff_;
226227
770771 ipc_client_factory_->SetMockResponse(response);
771772 }
772773
773 scoped_ptr<IPCClientFactoryMock> ipc_client_factory_;
774 scoped_ptr<IPCClientMock> ipc_client_;
775 scoped_ptr<Client> client_;
774 std::unique_ptr<IPCClientFactoryMock> ipc_client_factory_;
775 std::unique_ptr<IPCClientMock> ipc_client_;
776 std::unique_ptr<Client> client_;
776777 SessionPlaybackTestServerLauncher *server_launcher_;
777778
778779 private:
3131 #ifndef MOZC_COMPOSER_COMPOSER_H_
3232 #define MOZC_COMPOSER_COMPOSER_H_
3333
34 #include <memory>
3435 #include <set>
3536 #include <string>
3637 #include <vector>
3738
3839 #include "base/port.h"
3940 #include "base/protobuf/repeated_field.h"
40 #include "base/scoped_ptr.h"
4141 #include "composer/internal/typing_corrector.h"
4242 #include "composer/internal/transliterators.h"
4343 #include "composer/type_corrected_query.h"
259259 commands::Context::InputFieldType input_field_type_;
260260
261261 size_t shifted_sequence_count_;
262 scoped_ptr<CompositionInterface> composition_;
262 std::unique_ptr<CompositionInterface> composition_;
263263
264264 TypingCorrector typing_corrector_;
265265
2929 #include "composer/composer.h"
3030
3131 #include <iostream> // NOLINT
32 #include <memory>
3233 #include <string>
3334
3435 #include "base/flags.h"
35 #include "base/scoped_ptr.h"
3636 #include "composer/composition_interface.h"
3737 #include "composer/table.h"
3838 #include "protocol/commands.pb.h"
4848
4949 mozc::composer::Table table;
5050 table.LoadFromFile(FLAGS_table.c_str());
51 scoped_ptr<mozc::composer::Composer> composer(
51 std::unique_ptr<mozc::composer::Composer> composer(
5252 new mozc::composer::Composer(&table, &Request::default_instance()));
5353
5454 string command;
2828
2929 #include "composer/composer.h"
3030
31 #include <memory>
3132 #include <string>
3233 #include <utility>
3334 #include <vector>
147148 ConfigHandler::SetConfig(config);
148149 }
149150
150 scoped_ptr<Composer> composer_;
151 scoped_ptr<Table> table_;
152 scoped_ptr<Request> default_request_;
151 std::unique_ptr<Composer> composer_;
152 std::unique_ptr<Table> table_;
153 std::unique_ptr<Request> default_request_;
153154
154155 private:
155156 DISALLOW_COPY_AND_ASSIGN(ComposerTest);
33403341 return queries.empty();
33413342 }
33423343
3343 scoped_ptr<Request> request_;
3344 scoped_ptr<Composer> composer_;
3345 scoped_ptr<Table> table_;
3344 std::unique_ptr<Request> request_;
3345 std::unique_ptr<Composer> composer_;
3346 std::unique_ptr<Table> table_;
33463347 Config config_backup_;
33473348 };
33483349
2727 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2828
2929 #include "composer/internal/char_chunk.h"
30
31 #include <memory>
32
3033 #include "composer/internal/composition_input.h"
3134 #include "composer/internal/transliterators.h"
3235 #include "composer/table.h"
396399 // Split "mo" to "m" and "o".
397400 CharChunk *left_chunk_ptr = NULL;
398401 chunk.SplitChunk(Transliterators::LOCAL, 1, &left_chunk_ptr);
399 scoped_ptr<CharChunk> left_chunk(left_chunk_ptr);
402 std::unique_ptr<CharChunk> left_chunk(left_chunk_ptr);
400403
401404 // The output should be half width "m" rather than full width "m".
402405 output.clear();
10591062
10601063 CharChunk *left_new_chunk_ptr = NULL;
10611064 chunk.SplitChunk(Transliterators::HIRAGANA, size_t(1), &left_new_chunk_ptr);
1062 scoped_ptr<CharChunk> left_new_chunk(left_new_chunk_ptr);
1065 std::unique_ptr<CharChunk> left_new_chunk(left_new_chunk_ptr);
10631066 {
10641067 string result;
10651068 chunk.AppendFixedResult(Transliterators::HIRAGANA, &result);
12761279 CharChunk *left_chunk_ptr = NULL;
12771280 EXPECT_FALSE(chunk.SplitChunk(Transliterators::CONVERSION_STRING,
12781281 0, &left_chunk_ptr));
1279 scoped_ptr<CharChunk> left_chunk(left_chunk_ptr);
1282 std::unique_ptr<CharChunk> left_chunk(left_chunk_ptr);
12801283 EXPECT_EQ(4, chunk.GetLength(Transliterators::CONVERSION_STRING));
12811284 EXPECT_FALSE(chunk.SplitChunk(Transliterators::CONVERSION_STRING,
12821285 4, &left_chunk_ptr));
12911294 CharChunk *left_chunk_ptr = NULL;
12921295 EXPECT_TRUE(chunk.SplitChunk(Transliterators::CONVERSION_STRING,
12931296 1, &left_chunk_ptr));
1294 scoped_ptr<CharChunk> left_chunk(left_chunk_ptr);
1297 std::unique_ptr<CharChunk> left_chunk(left_chunk_ptr);
12951298 EXPECT_EQ("a", left_chunk->conversion());
12961299 EXPECT_EQ("bcd", chunk.conversion());
12971300 }
13041307 CharChunk *left_chunk_ptr = NULL;
13051308 EXPECT_TRUE(chunk.SplitChunk(Transliterators::CONVERSION_STRING,
13061309 2, &left_chunk_ptr));
1307 scoped_ptr<CharChunk> left_chunk(left_chunk_ptr);
1310 std::unique_ptr<CharChunk> left_chunk(left_chunk_ptr);
13081311 EXPECT_EQ("ab", left_chunk->conversion());
13091312 EXPECT_EQ("cd", chunk.conversion());
13101313 }
13171320 CharChunk *left_chunk_ptr = NULL;
13181321 EXPECT_TRUE(chunk.SplitChunk(Transliterators::CONVERSION_STRING,
13191322 3, &left_chunk_ptr));
1320 scoped_ptr<CharChunk> left_chunk(left_chunk_ptr);
1323 std::unique_ptr<CharChunk> left_chunk(left_chunk_ptr);
13211324 EXPECT_EQ("abc", left_chunk->conversion());
13221325 EXPECT_EQ("d", chunk.conversion());
13231326 }
18561859 src.ambiguous_ = "ambiguous";
18571860 src.attributes_ = NEW_CHUNK;
18581861
1859 scoped_ptr<CharChunk> dest(new CharChunk(Transliterators::CONVERSION_STRING,
1860 NULL));
1862 std::unique_ptr<CharChunk> dest(
1863 new CharChunk(Transliterators::CONVERSION_STRING, NULL));
18611864 EXPECT_FALSE(src.transliterator_ == dest->transliterator_);
18621865 EXPECT_FALSE(src.table_ == dest->table_);
18631866 EXPECT_NE(src.raw_, dest->raw_);
2828
2929 #include "composer/internal/composition.h"
3030
31 #include <memory>
32
3133 #include "base/logging.h"
3234 #include "base/util.h"
3335 #include "composer/internal/char_chunk.h"
122124
123125 CharChunk *left_deleted_chunk_ptr = NULL;
124126 (*chunk_it)->SplitChunk(Transliterators::LOCAL, 1, &left_deleted_chunk_ptr);
125 scoped_ptr<CharChunk> left_deleted_chunk(left_deleted_chunk_ptr);
127 std::unique_ptr<CharChunk> left_deleted_chunk(left_deleted_chunk_ptr);
126128 }
127129 return new_position;
128130 }
2929 #include "composer/internal/composition.h"
3030
3131 #include <algorithm>
32 #include <memory>
3233 #include <set>
3334 #include <string>
3435
4041
4142 namespace mozc {
4243 namespace composer {
43
4444 namespace {
4545
4646 string GetString(const Composition &composition) {
7676 return pos;
7777 }
7878
79 } // anonymous namespace
79 } // namespace
8080
8181 class CompositionTest : public testing::Test {
8282 protected:
8686 composition_->SetInputMode(Transliterators::CONVERSION_STRING);
8787 }
8888
89 scoped_ptr<Table> table_;
90 scoped_ptr<Composition> composition_;
89 std::unique_ptr<Table> table_;
90 std::unique_ptr<Composition> composition_;
9191 };
9292
9393 static int InitComposition(Composition* comp) {
323323 CharChunk *left_new_chunk_ptr = NULL;
324324 right_orig_chunk.SplitChunk(Transliterators::RAW_STRING,
325325 test.position, &left_new_chunk_ptr);
326 scoped_ptr<CharChunk> left_new_chunk(left_new_chunk_ptr);
326 std::unique_ptr<CharChunk> left_new_chunk(left_new_chunk_ptr);
327327
328328 if (left_new_chunk.get() != NULL) {
329329 EXPECT_EQ(test.expected_left_conversion, left_new_chunk->conversion());
377377 CharChunk *left_new_chunk_ptr = NULL;
378378 right_orig_chunk.SplitChunk(Transliterators::CONVERSION_STRING,
379379 test.position, &left_new_chunk_ptr);
380 scoped_ptr<CharChunk> left_new_chunk(left_new_chunk_ptr);
380 std::unique_ptr<CharChunk> left_new_chunk(left_new_chunk_ptr);
381381
382382 if (left_new_chunk.get() != NULL) {
383383 EXPECT_EQ(test.expected_left_conversion, left_new_chunk->conversion());
455455 namespace {
456456 string GetDeletedString(Transliterators::Transliterator t12r,
457457 const int position) {
458 scoped_ptr<Table> table(new Table);
459 scoped_ptr<Composition> comp(new Composition(table.get()));
458 std::unique_ptr<Table> table(new Table);
459 std::unique_ptr<Composition> comp(new Composition(table.get()));
460460
461461 InitComposition(comp.get());
462462 comp->SetDisplayMode(0, t12r);
584584 string GetInsertedString(Transliterators::Transliterator t12r,
585585 const size_t position,
586586 const string &input) {
587 scoped_ptr<Table> table(new Table);
587 std::unique_ptr<Table> table(new Table);
588588 InitTable(table.get());
589 scoped_ptr<Composition> comp(new Composition(table.get()));
589 std::unique_ptr<Composition> comp(new Composition(table.get()));
590590 InitComposition(comp.get());
591591
592592 comp->SetTable(table.get());
20352035 EXPECT_EQ(Transliterators::FULL_KATAKANA, src.input_t12r());
20362036 EXPECT_EQ(3, src.chunks().size());
20372037
2038 scoped_ptr<Composition> dest(src.CloneImpl());
2038 std::unique_ptr<Composition> dest(src.CloneImpl());
20392039 ASSERT_NE(nullptr, dest.get());
20402040 EXPECT_EQ(src.table(), dest->table());
20412041 EXPECT_EQ(src.input_t12r(), dest->input_t12r());
2929 #include "composer/internal/typing_model.h"
3030
3131 #include <limits>
32 #include <memory>
3233
3334 #include "base/port.h"
34 #include "base/scoped_ptr.h"
3535 #include "base/string_piece.h"
3636
3737 namespace mozc {
3838 namespace composer {
39
4039 namespace {
4140
4241 // These header files are automatically generated by gen_typing_model.py.
4645 #include "composer/internal/typing_model_qwerty_mobile-hiragana.h"
4746 #include "composer/internal/typing_model_toggle_flick-hiragana.h"
4847
49 scoped_ptr<TypingModel> g_typing_model_12keys_hiragana;
50 scoped_ptr<TypingModel> g_typing_model_flick_hiragana;
51 scoped_ptr<TypingModel> g_typing_model_godan_hiragana;
52 scoped_ptr<TypingModel> g_typing_model_qwerty_mobile_hiragana;
53 scoped_ptr<TypingModel> g_typing_model_toggle_flick_hiragana;
48 std::unique_ptr<TypingModel> g_typing_model_12keys_hiragana;
49 std::unique_ptr<TypingModel> g_typing_model_flick_hiragana;
50 std::unique_ptr<TypingModel> g_typing_model_godan_hiragana;
51 std::unique_ptr<TypingModel> g_typing_model_qwerty_mobile_hiragana;
52 std::unique_ptr<TypingModel> g_typing_model_toggle_flick_hiragana;
53
5454 } // namespace
5555
5656 const uint8 TypingModel::kNoData = numeric_limits<uint8>::max();
2929 #ifndef MOZC_COMPOSER_INTERNAL_TYPING_MODEL_H_
3030 #define MOZC_COMPOSER_INTERNAL_TYPING_MODEL_H_
3131
32 #include <memory>
33
3234 #include "base/port.h"
33 #include "base/scoped_ptr.h"
3435 #include "base/string_piece.h"
3536 #include "protocol/commands.pb.h"
3637 // for FRIEND_TEST()
8182 size_t GetIndex(StringPiece key) const;
8283
8384 // Radix table, needed by GetIndex.
84 scoped_ptr<unsigned char[]> character_to_radix_table_;
85 std::unique_ptr<unsigned char[]> character_to_radix_table_;
8586 const size_t characters_size_;
8687 const uint8 *cost_table_;
8788 const size_t cost_table_size_;
3232
3333 #include <istream> // NOLINT
3434 #include <map>
35 #include <memory>
3536 #include <sstream>
3637 #include <string>
3738
4041 #include "base/hash.h"
4142 #include "base/logging.h"
4243 #include "base/port.h"
43 #include "base/scoped_ptr.h"
4444 #include "base/trie.h"
4545 #include "base/util.h"
4646 #include "composer/internal/typing_model.h"
380380 }
381381
382382 bool Table::LoadFromFile(const char *filepath) {
383 scoped_ptr<istream> ifs(ConfigFileStream::LegacyOpen(filepath));
383 std::unique_ptr<istream> ifs(ConfigFileStream::LegacyOpen(filepath));
384384 if (ifs.get() == NULL) {
385385 return false;
386386 }
650650 }
651651 }
652652
653 scoped_ptr<Table> table(new Table());
653 std::unique_ptr<Table> table(new Table());
654654 if (!table->InitializeWithRequestAndConfig(request, config)) {
655655 return NULL;
656656 }
659659 table_map_[hash] = table_to_cache;
660660 return table_to_cache;
661661 }
662
662663 } // namespace composer
663664 } // namespace mozc
3232 #define MOZC_COMPOSER_TABLE_H_
3333
3434 #include <map>
35 #include <memory>
3536 #include <set>
3637 #include <string>
3738 #include <vector>
39
3840 #include "base/port.h"
39 #include "base/scoped_ptr.h"
4041 #include "base/trie.h"
4142
4243 namespace mozc {
152153 void ResetEntrySet();
153154
154155 typedef Trie<const Entry*> EntryTrie;
155 scoped_ptr<EntryTrie> entries_;
156 std::unique_ptr<EntryTrie> entries_;
156157 typedef set<const Entry*> EntrySet;
157158 EntrySet entry_set_;
158159
2929 #include "converter/candidate_filter.h"
3030
3131 #include <climits>
32 #include <memory>
3233 #include <string>
3334 #include <vector>
3435
3536 #include "base/freelist.h"
3637 #include "base/number_util.h"
3738 #include "base/port.h"
38 #include "base/scoped_ptr.h"
3939 #include "base/util.h"
4040 #include "converter/node.h"
4141 #include "converter/segments.h"
130130 suggestion_filter_.get());
131131 }
132132
133 scoped_ptr<FreeList<Segment::Candidate> > candidate_freelist_;
134 scoped_ptr<FreeList<Node> > node_freelist_;
133 std::unique_ptr<FreeList<Segment::Candidate> > candidate_freelist_;
134 std::unique_ptr<FreeList<Node> > node_freelist_;
135135 const POSMatcher *pos_matcher_;
136136 SuppressionDictionary suppression_dictionary_;
137 scoped_ptr<SuggestionFilter> suggestion_filter_;
137 std::unique_ptr<SuggestionFilter> suggestion_filter_;
138138 };
139139
140140 TEST_F(CandidateFilterTest, FilterTest) {
141 scoped_ptr<CandidateFilter> filter(CreateCandidateFilter());
141 std::unique_ptr<CandidateFilter> filter(CreateCandidateFilter());
142142 vector<const Node *> n;
143143
144144 GetDefaultNodes(&n);
216216
217217 TEST_F(CandidateFilterTest, KatakanaT13N) {
218218 {
219 scoped_ptr<CandidateFilter> filter(CreateCandidateFilter());
219 std::unique_ptr<CandidateFilter> filter(CreateCandidateFilter());
220220 vector<const Node *> nodes;
221221 GetDefaultNodes(&nodes);
222222 // nodes[0] is KatakanaT13N
238238 }
239239 }
240240 {
241 scoped_ptr<CandidateFilter> filter(CreateCandidateFilter());
241 std::unique_ptr<CandidateFilter> filter(CreateCandidateFilter());
242242 vector<const Node *> nodes;
243243 GetDefaultNodes(&nodes);
244244 // nodes[1] is KatakanaT13N
258258 }
259259 }
260260 {
261 scoped_ptr<CandidateFilter> filter(CreateCandidateFilter());
261 std::unique_ptr<CandidateFilter> filter(CreateCandidateFilter());
262262 vector<const Node *> nodes;
263263 GetDefaultNodes(&nodes);
264264 // nodes[1] is not a functional word
289289 }
290290
291291 TEST_F(CandidateFilterTest, IsolatedWord) {
292 scoped_ptr<CandidateFilter> filter(CreateCandidateFilter());
292 std::unique_ptr<CandidateFilter> filter(CreateCandidateFilter());
293293 vector<const Node *> nodes;
294294 Segment::Candidate *c = NewCandidate();
295295 c->key = "abc";
340340 }
341341
342342 TEST_F(CandidateFilterTest, MayHaveMoreCandidates) {
343 scoped_ptr<CandidateFilter> filter(CreateCandidateFilter());
343 std::unique_ptr<CandidateFilter> filter(CreateCandidateFilter());
344344 vector<const Node *> n;
345345 GetDefaultNodes(&n);
346346
417417 }
418418
419419 TEST_F(CandidateFilterTest, Regression3437022) {
420 scoped_ptr<SuppressionDictionary> dic(new SuppressionDictionary);
420 std::unique_ptr<SuppressionDictionary> dic(new SuppressionDictionary);
421421 const POSMatcher *pos_matcher =
422422 UserPosManager::GetUserPosManager()->GetPOSMatcher();
423 scoped_ptr<CandidateFilter> filter(
423 std::unique_ptr<CandidateFilter> filter(
424424 new CandidateFilter(dic.get(), pos_matcher, suggestion_filter_.get()));
425425
426426 vector<const Node *> n;
473473 }
474474
475475 TEST_F(CandidateFilterTest, FilterRealtimeConversionTest) {
476 scoped_ptr<CandidateFilter> filter(CreateCandidateFilter());
476 std::unique_ptr<CandidateFilter> filter(CreateCandidateFilter());
477477 vector<const Node *> n;
478478
479479 n.clear();
508508 }
509509
510510 TEST_F(CandidateFilterTest, DoNotFilterExchangeableCandidates) {
511 scoped_ptr<CandidateFilter> filter(CreateCandidateFilter());
511 std::unique_ptr<CandidateFilter> filter(CreateCandidateFilter());
512512 vector<const Node *> nodes;
513513
514514 {
594594 }
595595
596596 TEST_F(CandidateFilterTest, CapabilityOfSuggestionFilter_Conversion) {
597 scoped_ptr<CandidateFilter> filter(CreateCandidateFilter());
597 std::unique_ptr<CandidateFilter> filter(CreateCandidateFilter());
598598
599599 // For Segments::CONVERSION, suggestion filter is not applied.
600600 {
621621 }
622622
623623 TEST_F(CandidateFilterTest, CapabilityOfSuggestionFilter_Suggestion) {
624 scoped_ptr<CandidateFilter> filter(CreateCandidateFilter());
624 std::unique_ptr<CandidateFilter> filter(CreateCandidateFilter());
625625
626626 // For Segments::SUGGESTION, suggestion filter is applied regardless of its
627627 // original key length. First test unigram case.
734734 }
735735
736736 TEST_F(CandidateFilterTest, CapabilityOfSuggestionFilter_Prediction) {
737 scoped_ptr<CandidateFilter> filter(CreateCandidateFilter());
737 std::unique_ptr<CandidateFilter> filter(CreateCandidateFilter());
738738
739739 // For Segments::PREDICTION, suggestion filter is applied only when its
740740 // original key length is equal to the key of predicted node. First test
851851 }
852852
853853 TEST_F(CandidateFilterTest, ReverseConversion) {
854 scoped_ptr<CandidateFilter> filter(CreateCandidateFilter());
854 std::unique_ptr<CandidateFilter> filter(CreateCandidateFilter());
855855 vector<const Node *> nodes;
856856 GetDefaultNodes(&nodes);
857857
2929 #ifndef MOZC_CONVERTER_CONNECTOR_H_
3030 #define MOZC_CONVERTER_CONNECTOR_H_
3131
32 #include <memory>
3233 #include <vector>
3334
3435 #include "base/port.h"
35 #include "base/scoped_ptr.h"
3636
3737 namespace mozc {
3838
6565
6666 const int cache_size_;
6767 const uint32 cache_hash_mask_;
68 mutable scoped_ptr<uint32[]> cache_key_;
69 mutable scoped_ptr<int[]> cache_value_;
68 mutable std::unique_ptr<uint32[]> cache_key_;
69 mutable std::unique_ptr<int[]> cache_value_;
7070
7171 DISALLOW_COPY_AND_ASSIGN(Connector);
7272 };
2929 #include "converter/connector.h"
3030
3131 #include <algorithm>
32 #include <memory>
3233 #include <string>
3334 #include <vector>
3435
3536 #include "base/file_util.h"
3637 #include "base/mmap.h"
37 #include "base/scoped_ptr.h"
3838 #include "data_manager/connection_file_reader.h"
3939 #include "testing/base/public/gunit.h"
4040
5959 FLAGS_test_srcdir, kTestConnectionDataImagePath);
6060 Mmap cmmap;
6161 ASSERT_TRUE(cmmap.Open(path.c_str())) << "Failed to open image: " << path;
62 scoped_ptr<Connector> connector(
62 std::unique_ptr<Connector> connector(
6363 new Connector(cmmap.begin(), cmmap.size(), 256));
6464 ASSERT_EQ(1, connector->GetResolution());
6565
2929 #ifndef MOZC_CONVERTER_CONVERTER_H_
3030 #define MOZC_CONVERTER_CONVERTER_H_
3131
32 #include <memory>
3233 #include <string>
3334
34 #include "base/scoped_ptr.h"
3535 #include "converter/converter_interface.h"
3636 #include "dictionary/pos_matcher.h"
3737 #include "dictionary/suppression_dictionary.h"
169169
170170 const dictionary::POSMatcher *pos_matcher_;
171171 const dictionary::SuppressionDictionary *suppression_dictionary_;
172 scoped_ptr<PredictorInterface> predictor_;
173 scoped_ptr<RewriterInterface> rewriter_;
172 std::unique_ptr<PredictorInterface> predictor_;
173 std::unique_ptr<RewriterInterface> rewriter_;
174174 const ImmutableConverterInterface *immutable_converter_;
175175 uint16 general_noun_id_;
176176 };
2828
2929 #include <iostream>
3030 #include <map>
31 #include <memory>
3132 #include <string>
3233 #include <vector>
3334
9091 return Util::StringPrintf("%s (%d)", pos_string.c_str(), id);
9192 }
9293
93 scoped_ptr<InputFileStream> pos_id_;
94 scoped_ptr<internal::PosIdPrinter> pos_id_printer_;
94 std::unique_ptr<InputFileStream> pos_id_;
95 std::unique_ptr<internal::PosIdPrinter> pos_id_printer_;
9596
9697 friend class Singleton<PosIdPrintUtil>;
9798 DISALLOW_COPY_AND_ASSIGN(PosIdPrintUtil);
381382 mozc::SystemUtil::SetUserProfileDirectory(FLAGS_user_profile_dir);
382383 }
383384
384 scoped_ptr<mozc::EngineInterface> engine;
385 std::unique_ptr<mozc::EngineInterface> engine;
385386 mozc::commands::Request request;
386387 if (FLAGS_engine == "default") {
387388 LOG(INFO) << "Using default preference and engine";
2626 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2727 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2828
29 #include <memory>
2930 #include <string>
3031
3132 #include "converter/conversion_request.h"
6162 }
6263
6364 private:
64 scoped_ptr<ConverterMock> mock_;
65 std::unique_ptr<ConverterMock> mock_;
6566 };
6667
6768 TEST_F(ConverterMockTest, CopySegment) {
2626 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2727 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2828
29 #include <memory>
2930 #include <string>
3031
3132 #include "base/file_util.h"
32 #include "base/scoped_ptr.h"
3333 #include "base/system_util.h"
3434 #include "composer/composer.h"
3535 #include "composer/table.h"
130130 };
131131
132132 TEST_F(ConverterRegressionTest, QueryOfDeathTest) {
133 scoped_ptr<EngineInterface> engine(EngineFactory::Create());
133 std::unique_ptr<EngineInterface> engine(EngineFactory::Create());
134134 ConverterInterface *converter = engine->GetConverter();
135135
136136 CHECK(converter);
169169 }
170170
171171 TEST_F(ConverterRegressionTest, Regression3323108) {
172 scoped_ptr<EngineInterface> engine(EngineFactory::Create());
172 std::unique_ptr<EngineInterface> engine(EngineFactory::Create());
173173 ConverterInterface *converter = engine->GetConverter();
174174 Segments segments;
175175
2828
2929 #include "converter/converter.h"
3030
31 #include <memory>
3132 #include <string>
3233 #include <vector>
3334
3435 #include "base/logging.h"
3536 #include "base/port.h"
36 #include "base/scoped_ptr.h"
3737 #include "base/system_util.h"
3838 #include "base/util.h"
3939 #include "composer/composer.h"
7272 #include "protocol/config.pb.h"
7373 #include "rewriter/rewriter.h"
7474 #include "rewriter/rewriter_interface.h"
75 #include "testing/base/public/googletest.h"
7576 #include "testing/base/public/gunit.h"
7677 #include "transliteration/transliteration.h"
7778 #include "usage_stats/usage_stats.h"
7879 #include "usage_stats/usage_stats_testing_util.h"
79
80 DECLARE_string(test_tmpdir);
8180
8281 using mozc::dictionary::DictionaryImpl;
8382 using mozc::dictionary::DictionaryInterface;
176175
177176 // This struct holds resources used by converter.
178177 struct ConverterAndData {
179 scoped_ptr<DictionaryInterface> user_dictionary;
180 scoped_ptr<SuppressionDictionary> suppression_dictionary;
181 scoped_ptr<DictionaryInterface> suffix_dictionary;
182 scoped_ptr<const Connector> connector;
183 scoped_ptr<const Segmenter> segmenter;
184 scoped_ptr<DictionaryInterface> dictionary;
185 scoped_ptr<const PosGroup> pos_group;
186 scoped_ptr<const SuggestionFilter> suggestion_filter;
187 scoped_ptr<ImmutableConverterInterface> immutable_converter;
188 scoped_ptr<ConverterImpl> converter;
178 std::unique_ptr<DictionaryInterface> user_dictionary;
179 std::unique_ptr<SuppressionDictionary> suppression_dictionary;
180 std::unique_ptr<DictionaryInterface> suffix_dictionary;
181 std::unique_ptr<const Connector> connector;
182 std::unique_ptr<const Segmenter> segmenter;
183 std::unique_ptr<DictionaryInterface> dictionary;
184 std::unique_ptr<const PosGroup> pos_group;
185 std::unique_ptr<const SuggestionFilter> suggestion_filter;
186 std::unique_ptr<ImmutableConverterInterface> immutable_converter;
187 std::unique_ptr<ConverterImpl> converter;
189188 };
190189
191190 ConverterAndData *CreateConverterAndData(RewriterInterface *rewriter) {
275274 // just checking whether this causes segmentation fault or not.
276275 // TODO(toshiyuki): make dictionary mock and test strictly.
277276 TEST_F(ConverterTest, CanConvertTest) {
278 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
277 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
279278 ConverterInterface *converter = engine->GetConverter();
280279 CHECK(converter);
281280 {
296295 string ContextAwareConvert(const string &first_key,
297296 const string &first_value,
298297 const string &second_key) {
299 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
298 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
300299 ConverterInterface *converter = engine->GetConverter();
301300 CHECK(converter);
302301
430429 }
431430
432431 TEST_F(ConverterTest, CommitSegmentValue) {
433 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
432 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
434433 ConverterInterface *converter = engine->GetConverter();
435434 CHECK(converter);
436435 Segments segments;
482481 }
483482
484483 TEST_F(ConverterTest, CommitSegments) {
485 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
484 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
486485 ConverterInterface *converter = engine->GetConverter();
487486 CHECK(converter);
488487 Segments segments;
568567 }
569568
570569 TEST_F(ConverterTest, CommitPartialSuggestionSegmentValue) {
571 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
570 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
572571 ConverterInterface *converter = engine->GetConverter();
573572 CHECK(converter);
574573 Segments segments;
614613 }
615614
616615 TEST_F(ConverterTest, CommitPartialSuggestionUsageStats) {
617 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
616 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
618617 ConverterInterface *converter = engine->GetConverter();
619618 CHECK(converter);
620619 Segments segments;
707706 }
708707
709708 TEST_F(ConverterTest, CommitAutoPartialSuggestionUsageStats) {
710 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
709 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
711710 ConverterInterface *converter = engine->GetConverter();
712711 CHECK(converter);
713712 Segments segments;
785784 }
786785
787786 TEST_F(ConverterTest, CandidateKeyTest) {
788 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
787 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
789788 ConverterInterface *converter = engine->GetConverter();
790789 CHECK(converter);
791790 Segments segments;
803802 }
804803
805804 TEST_F(ConverterTest, Regression3437022) {
806 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
805 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
807806 ConverterInterface *converter = engine->GetConverter();
808807 Segments segments;
809808
894893 "\xE3\x81\xAE\xE3\x81\xA7\xE3\x81\x99"
895894 };
896895
897 scoped_ptr<ConverterAndData> converter_and_data(
896 std::unique_ptr<ConverterAndData> converter_and_data(
898897 CreateStubbedConverterAndData());
899898 ConverterImpl *converter = converter_and_data->converter.get();
900899 for (size_t i = 0; i < arraysize(kTestKeys); ++i) {
933932
934933 TEST_F(ConverterTest, Regression3046266) {
935934 // Shouldn't correct nodes at the beginning of a sentence.
936 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
935 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
937936 ConverterInterface *converter = engine->GetConverter();
938937 Segments segments;
939938
969968
970969 TEST_F(ConverterTest, Regression5502496) {
971970 // Make sure key correction works for the first word of a sentence.
972 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
971 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
973972 ConverterInterface *converter = engine->GetConverter();
974973 Segments segments;
975974
995994 commands::Request client_request;
996995 client_request.set_mixed_conversion(true);
997996
998 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
997 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
999998 ConverterInterface *converter = engine->GetConverter();
1000999 CHECK(converter);
10011000
10401039 }
10411040
10421041 TEST_F(ConverterTest, StartPartialPrediction) {
1043 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
1042 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
10441043 ConverterInterface *converter = engine->GetConverter();
10451044 CHECK(converter);
10461045 Segments segments;
10581057 }
10591058
10601059 TEST_F(ConverterTest, StartPartialSuggestion) {
1061 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
1060 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
10621061 ConverterInterface *converter = engine->GetConverter();
10631062 CHECK(converter);
10641063 Segments segments;
10761075 }
10771076
10781077 TEST_F(ConverterTest, StartPartialPrediction_mobile) {
1079 scoped_ptr<EngineInterface> engine(CreateEngineWithMobilePredictor());
1078 std::unique_ptr<EngineInterface> engine(CreateEngineWithMobilePredictor());
10801079 ConverterInterface *converter = engine->GetConverter();
10811080 CHECK(converter);
10821081 Segments segments;
10941093 }
10951094
10961095 TEST_F(ConverterTest, StartPartialSuggestion_mobile) {
1097 scoped_ptr<EngineInterface> engine(CreateEngineWithMobilePredictor());
1096 std::unique_ptr<EngineInterface> engine(CreateEngineWithMobilePredictor());
10981097 ConverterInterface *converter = engine->GetConverter();
10991098 CHECK(converter);
11001099 Segments segments;
11781177 {Segments::PARTIAL_SUGGESTION, kPredictionKey, true},
11791178 };
11801179
1181 scoped_ptr<ConverterAndData> converter_and_data(
1180 std::unique_ptr<ConverterAndData> converter_and_data(
11821181 CreateStubbedConverterAndData());
11831182 ConverterImpl *converter = converter_and_data->converter.get();
11841183 ASSERT_NE(nullptr, converter);
12111210 TEST_F(ConverterTest, VariantExpansionForSuggestion) {
12121211 // Create Converter with mock user dictionary
12131212 testing::MockDataManager data_manager;
1214 scoped_ptr<DictionaryMock> mock_user_dictionary(new DictionaryMock);
1213 std::unique_ptr<DictionaryMock> mock_user_dictionary(new DictionaryMock);
12151214
12161215 mock_user_dictionary->AddLookupPredictive(
12171216 // "てすと"
12271226 "\xe3\x81\xa6\xe3\x81\x99\xe3\x81\xa8",
12281227 "<>!?",
12291228 Token::USER_DICTIONARY);
1230 scoped_ptr<SuppressionDictionary> suppression_dictionary(
1229 std::unique_ptr<SuppressionDictionary> suppression_dictionary(
12311230 new SuppressionDictionary);
12321231
12331232 const char *dictionary_data = NULL;
12341233 int dictionary_size = 0;
12351234 data_manager.GetSystemDictionaryData(&dictionary_data, &dictionary_size);
12361235
1237 scoped_ptr<DictionaryInterface> dictionary(new DictionaryImpl(
1236 std::unique_ptr<DictionaryInterface> dictionary(new DictionaryImpl(
12381237 SystemDictionary::Builder(dictionary_data, dictionary_size).Build(),
12391238 ValueDictionary::CreateValueDictionaryFromImage(
12401239 *data_manager.GetPOSMatcher(), dictionary_data, dictionary_size),
12411240 mock_user_dictionary.get(),
12421241 suppression_dictionary.get(),
12431242 data_manager.GetPOSMatcher()));
1244 scoped_ptr<const PosGroup> pos_group(
1243 std::unique_ptr<const PosGroup> pos_group(
12451244 new PosGroup(data_manager.GetPosGroupData()));
1246 scoped_ptr<const DictionaryInterface> suffix_dictionary(
1245 std::unique_ptr<const DictionaryInterface> suffix_dictionary(
12471246 CreateSuffixDictionaryFromDataManager(data_manager));
1248 scoped_ptr<const Connector> connector(
1247 std::unique_ptr<const Connector> connector(
12491248 Connector::CreateFromDataManager(data_manager));
1250 scoped_ptr<const Segmenter> segmenter(
1249 std::unique_ptr<const Segmenter> segmenter(
12511250 Segmenter::CreateFromDataManager(data_manager));
1252 scoped_ptr<const SuggestionFilter> suggestion_filter(
1251 std::unique_ptr<const SuggestionFilter> suggestion_filter(
12531252 CreateSuggestionFilter(data_manager));
1254 scoped_ptr<ImmutableConverterInterface> immutable_converter(
1253 std::unique_ptr<ImmutableConverterInterface> immutable_converter(
12551254 new ImmutableConverterImpl(dictionary.get(),
12561255 suffix_dictionary.get(),
12571256 suppression_dictionary.get(),
12601259 data_manager.GetPOSMatcher(),
12611260 pos_group.get(),
12621261 suggestion_filter.get()));
1263 scoped_ptr<const SuggestionFilter> suggegstion_filter(
1262 std::unique_ptr<const SuggestionFilter> suggegstion_filter(
12641263 CreateSuggestionFilter(data_manager));
1265 scoped_ptr<ConverterImpl> converter(new ConverterImpl);
1264 std::unique_ptr<ConverterImpl> converter(new ConverterImpl);
12661265 const DictionaryInterface *kNullDictionary = NULL;
12671266 converter->Init(data_manager.GetPOSMatcher(),
12681267 suppression_dictionary.get(),
13221321 }
13231322
13241323 TEST_F(ConverterTest, ComposerKeySelection) {
1325 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
1324 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
13261325 ConverterInterface *converter = engine->GetConverter();
13271326 composer::Table table;
13281327 {
13531352 }
13541353
13551354 TEST_F(ConverterTest, SuppressionDictionaryForRewriter) {
1356 scoped_ptr<ConverterAndData> ret(
1355 std::unique_ptr<ConverterAndData> ret(
13571356 CreateConverterAndDataWithInsertDummyWordsRewriter());
13581357
13591358 // Set up suppression dictionary
13811380
13821381 TEST_F(ConverterTest, EmptyConvertReverse_Issue8661091) {
13831382 // This is a test case against b/8661091.
1384 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
1383 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
13851384 ConverterInterface *converter = engine->GetConverter();
13861385
13871386 Segments segments;
13891388 }
13901389
13911390 TEST_F(ConverterTest, StartReverseConversion) {
1392 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
1391 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
13931392 const ConverterInterface *converter = engine->GetConverter();
13941393
13951394 const string kHonKanji = "\xE6\x9C\xAC"; // "本"
15501549 }
15511550
15521551 TEST_F(ConverterTest, GetLastConnectivePart) {
1553 scoped_ptr<ConverterAndData> converter_and_data(
1552 std::unique_ptr<ConverterAndData> converter_and_data(
15541553 CreateStubbedConverterAndData());
15551554 ConverterImpl *converter = converter_and_data->converter.get();
15561555
16271626 }
16281627
16291628 TEST_F(ConverterTest, ReconstructHistory) {
1630 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
1629 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
16311630 ConverterInterface *converter = engine->GetConverter();
16321631
16331632 // "10"
3131 #include <algorithm>
3232 #include <cctype>
3333 #include <climits>
34 #include <memory>
3435 #include <string>
3536 #include <utility>
3637 #include <vector>
3738
3839 #include "base/logging.h"
3940 #include "base/port.h"
40 #include "base/scoped_ptr.h"
4141 #include "base/stl_util.h"
4242 #include "base/string_piece.h"
4343 #include "base/util.h"
15801580 (segments.request_type() == Segments::CONVERSION);
15811581 // Do not use KeyCorrector if user changes the boundary.
15821582 // http://b/issue?id=2804996
1583 scoped_ptr<KeyCorrector> key_corrector;
1583 std::unique_ptr<KeyCorrector> key_corrector;
15841584 if (is_conversion && !segments.resized()) {
15851585 KeyCorrector::InputMode mode = KeyCorrector::ROMAN;
15861586 if (GET_CONFIG(preedit_method) != config::Config::ROMAN) {
2828
2929 #include "converter/immutable_converter.h"
3030
31 #include <memory>
3132 #include <string>
3233 #include <utility>
3334 #include <vector>
3435
3536 #include "base/logging.h"
3637 #include "base/port.h"
37 #include "base/scoped_ptr.h"
3838 #include "base/string_piece.h"
3939 #include "base/system_util.h"
4040 #include "base/util.h"
5858 #include "prediction/suggestion_filter.h"
5959 #include "protocol/commands.pb.h"
6060 #include "protocol/config.pb.h"
61 #include "testing/base/public/googletest.h"
6162 #include "testing/base/public/gunit.h"
62
63 DECLARE_string(test_tmpdir);
6463
6564 using mozc::dictionary::DictionaryImpl;
6665 using mozc::dictionary::DictionaryInterface;
162161 }
163162
164163 private:
165 scoped_ptr<const DataManagerInterface> data_manager_;
166 scoped_ptr<const SuppressionDictionary> suppression_dictionary_;
167 scoped_ptr<const Connector> connector_;
168 scoped_ptr<const Segmenter> segmenter_;
169 scoped_ptr<const DictionaryInterface> suffix_dictionary_;
170 scoped_ptr<const DictionaryInterface> dictionary_;
171 scoped_ptr<const PosGroup> pos_group_;
172 scoped_ptr<const SuggestionFilter> suggestion_filter_;
173 scoped_ptr<ImmutableConverterImpl> immutable_converter_;
164 std::unique_ptr<const DataManagerInterface> data_manager_;
165 std::unique_ptr<const SuppressionDictionary> suppression_dictionary_;
166 std::unique_ptr<const Connector> connector_;
167 std::unique_ptr<const Segmenter> segmenter_;
168 std::unique_ptr<const DictionaryInterface> suffix_dictionary_;
169 std::unique_ptr<const DictionaryInterface> dictionary_;
170 std::unique_ptr<const PosGroup> pos_group_;
171 std::unique_ptr<const SuggestionFilter> suggestion_filter_;
172 std::unique_ptr<ImmutableConverterImpl> immutable_converter_;
174173 UserDictionaryStub user_dictionary_stub_;
175174 };
176175
193192 };
194193
195194 TEST_F(ImmutableConverterTest, KeepKeyForPrediction) {
196 scoped_ptr<MockDataAndImmutableConverter> data_and_converter(
195 std::unique_ptr<MockDataAndImmutableConverter> data_and_converter(
197196 new MockDataAndImmutableConverter);
198197 Segments segments;
199198 segments.set_request_type(Segments::PREDICTION);
211210 }
212211
213212 TEST_F(ImmutableConverterTest, DummyCandidatesCost) {
214 scoped_ptr<MockDataAndImmutableConverter> data_and_converter(
213 std::unique_ptr<MockDataAndImmutableConverter> data_and_converter(
215214 new MockDataAndImmutableConverter);
216215 Segment segment;
217216 // "てすと"
223222 }
224223
225224 TEST_F(ImmutableConverterTest, DummyCandidatesInnerSegmentBoundary) {
226 scoped_ptr<MockDataAndImmutableConverter> data_and_converter(
225 std::unique_ptr<MockDataAndImmutableConverter> data_and_converter(
227226 new MockDataAndImmutableConverter);
228227 Segment segment;
229228 // "てすと"
319318 // "ないか"
320319 KeyCheckDictionary *dictionary =
321320 new KeyCheckDictionary("\xe3\x81\xaa\xe3\x81\x84\xe3\x81\x8b");
322 scoped_ptr<MockDataAndImmutableConverter> data_and_converter(
321 std::unique_ptr<MockDataAndImmutableConverter> data_and_converter(
323322 new MockDataAndImmutableConverter(dictionary, dictionary));
324323 ImmutableConverterImpl *converter = data_and_converter->GetConverter();
325324 const ConversionRequest request;
348347 // "しま"
349348 KeyCheckDictionary *dictionary =
350349 new KeyCheckDictionary("\xe3\x81\x97\xe3\x81\xbe");
351 scoped_ptr<MockDataAndImmutableConverter> data_and_converter(
350 std::unique_ptr<MockDataAndImmutableConverter> data_and_converter(
352351 new MockDataAndImmutableConverter(dictionary, dictionary));
353352 ImmutableConverterImpl *converter = data_and_converter->GetConverter();
354353 const ConversionRequest request;
357356 }
358357
359358 TEST_F(ImmutableConverterTest, InnerSegmenBoundaryForPrediction) {
360 scoped_ptr<MockDataAndImmutableConverter> data_and_converter(
359 std::unique_ptr<MockDataAndImmutableConverter> data_and_converter(
361360 new MockDataAndImmutableConverter);
362361 Segments segments;
363362 segments.set_request_type(Segments::PREDICTION);
410409 }
411410
412411 TEST_F(ImmutableConverterTest, NoInnerSegmenBoundaryForConversion) {
413 scoped_ptr<MockDataAndImmutableConverter> data_and_converter(
412 std::unique_ptr<MockDataAndImmutableConverter> data_and_converter(
414413 new MockDataAndImmutableConverter);
415414 Segments segments;
416415 segments.set_request_type(Segments::CONVERSION);
431430 }
432431
433432 TEST_F(ImmutableConverterTest, NotConnectedTest) {
434 scoped_ptr<MockDataAndImmutableConverter> data_and_converter(
433 std::unique_ptr<MockDataAndImmutableConverter> data_and_converter(
435434 new MockDataAndImmutableConverter);
436435 ImmutableConverterImpl *converter = data_and_converter->GetConverter();
437436
522521
523522 // Verify that history segments are cleared due to its length limit and at
524523 // least one candidate is generated.
525 scoped_ptr<MockDataAndImmutableConverter> data_and_converter(
524 std::unique_ptr<MockDataAndImmutableConverter> data_and_converter(
526525 new MockDataAndImmutableConverter);
527526 EXPECT_TRUE(data_and_converter->GetConverter()->Convert(&segments));
528527 EXPECT_EQ(0, segments.history_segments_size());
533532
534533 namespace {
535534 bool AutoPartialSuggestionTestHelper(const ConversionRequest &request) {
536 scoped_ptr<MockDataAndImmutableConverter> data_and_converter(
535 std::unique_ptr<MockDataAndImmutableConverter> data_and_converter(
537536 new MockDataAndImmutableConverter);
538537 Segments segments;
539538 segments.set_request_type(Segments::PREDICTION);
591590 ConversionRequest conversion_request(NULL, &request);
592591 conversion_request.set_create_partial_candidates(true);
593592
594 scoped_ptr<MockDataAndImmutableConverter> data_and_converter(
593 std::unique_ptr<MockDataAndImmutableConverter> data_and_converter(
595594 new MockDataAndImmutableConverter);
596595 const string kRequestKeys[] = {
597596 // "たかまち"
2929 #ifndef MOZC_CONVERTER_LATTICE_H_
3030 #define MOZC_CONVERTER_LATTICE_H_
3131
32 #include <memory>
3233 #include <string>
3334 #include <vector>
3435
3536 #include "base/port.h"
36 #include "base/scoped_ptr.h"
3737 #include "base/string_piece.h"
3838 #include "converter/node.h"
3939 #include "converter/node_allocator.h"
123123 size_t history_end_pos_;
124124 vector<Node *> begin_nodes_;
125125 vector<Node *> end_nodes_;
126 scoped_ptr<NodeAllocator> node_allocator_;
126 std::unique_ptr<NodeAllocator> node_allocator_;
127127
128128 // cache_info_ holds cache information about lookup.
129129 // If cache_info_[pos] equals to len, it means key.substr(pos, k)
2929 #ifndef MOZC_CONVERTER_NBEST_GENERATOR_H_
3030 #define MOZC_CONVERTER_NBEST_GENERATOR_H_
3131
32 #include <memory>
3233 #include <string>
3334 #include <vector>
3435
3536 #include "base/freelist.h"
3637 #include "base/port.h"
37 #include "base/scoped_ptr.h"
3838 #include "converter/candidate_filter.h"
3939 #include "converter/segments.h"
4040 #include "dictionary/suppression_dictionary.h"
181181 Agenda agenda_;
182182 FreeList<QueueElement> freelist_;
183183 vector<const Node *> nodes_;
184 scoped_ptr<converter::CandidateFilter> filter_;
184 std::unique_ptr<converter::CandidateFilter> filter_;
185185 bool viterbi_result_checked_;
186186 BoundaryCheckMode check_mode_;
187187
2828
2929 #include "converter/nbest_generator.h"
3030
31 #include <memory>
3132 #include <string>
3233
3334 #include "base/logging.h"
3435 #include "base/port.h"
35 #include "base/scoped_ptr.h"
3636 #include "base/system_util.h"
3737 #include "config/config_handler.h"
3838 #include "converter/connector.h"
5353 #include "dictionary/user_dictionary_stub.h"
5454 #include "prediction/suggestion_filter.h"
5555 #include "protocol/config.pb.h"
56 #include "testing/base/public/googletest.h"
5657 #include "testing/base/public/gunit.h"
57
58 DECLARE_string(test_tmpdir);
5958
6059 using mozc::dictionary::DictionaryImpl;
6160 using mozc::dictionary::DictionaryInterface;
144143 }
145144
146145 private:
147 scoped_ptr<const DataManagerInterface> data_manager_;
148 scoped_ptr<const SuppressionDictionary> suppression_dictionary_;
149 scoped_ptr<const Connector> connector_;
150 scoped_ptr<const Segmenter> segmenter_;
151 scoped_ptr<const DictionaryInterface> suffix_dictionary_;
152 scoped_ptr<const DictionaryInterface> dictionary_;
153 scoped_ptr<const PosGroup> pos_group_;
154 scoped_ptr<const SuggestionFilter> suggestion_filter_;
155 scoped_ptr<ImmutableConverterImpl> immutable_converter_;
146 std::unique_ptr<const DataManagerInterface> data_manager_;
147 std::unique_ptr<const SuppressionDictionary> suppression_dictionary_;
148 std::unique_ptr<const Connector> connector_;
149 std::unique_ptr<const Segmenter> segmenter_;
150 std::unique_ptr<const DictionaryInterface> suffix_dictionary_;
151 std::unique_ptr<const DictionaryInterface> dictionary_;
152 std::unique_ptr<const PosGroup> pos_group_;
153 std::unique_ptr<const SuggestionFilter> suggestion_filter_;
154 std::unique_ptr<ImmutableConverterImpl> immutable_converter_;
156155 UserDictionaryStub user_dictionary_stub_;
157156 };
158157
203202 };
204203
205204 TEST_F(NBestGeneratorTest, MultiSegmentConnectionTest) {
206 scoped_ptr<MockDataAndImmutableConverter> data_and_converter(
205 std::unique_ptr<MockDataAndImmutableConverter> data_and_converter(
207206 new MockDataAndImmutableConverter);
208207 ImmutableConverterImpl *converter = data_and_converter->GetConverter();
209208
232231 converter->MakeGroup(segments, &group);
233232 converter->Viterbi(segments, &lattice);
234233
235 scoped_ptr<NBestGenerator> nbest_generator(
234 std::unique_ptr<NBestGenerator> nbest_generator(
236235 data_and_converter->CreateNBestGenerator(&lattice));
237236
238237 const bool kSingleSegment = false; // For 'normal' conversion
271270 }
272271
273272 TEST_F(NBestGeneratorTest, SingleSegmentConnectionTest) {
274 scoped_ptr<MockDataAndImmutableConverter> data_and_converter(
273 std::unique_ptr<MockDataAndImmutableConverter> data_and_converter(
275274 new MockDataAndImmutableConverter);
276275 ImmutableConverterImpl *converter = data_and_converter->GetConverter();
277276
297296 converter->MakeGroup(segments, &group);
298297 converter->Viterbi(segments, &lattice);
299298
300 scoped_ptr<NBestGenerator> nbest_generator(
299 std::unique_ptr<NBestGenerator> nbest_generator(
301300 data_and_converter->CreateNBestGenerator(&lattice));
302301
303302
334333 }
335334
336335 TEST_F(NBestGeneratorTest, InnerSegmentBoundary) {
337 scoped_ptr<MockDataAndImmutableConverter> data_and_converter(
336 std::unique_ptr<MockDataAndImmutableConverter> data_and_converter(
338337 new MockDataAndImmutableConverter);
339338 ImmutableConverterImpl *converter = data_and_converter->GetConverter();
340339
360359 converter->MakeGroup(segments, &group);
361360 converter->Viterbi(segments, &lattice);
362361
363 scoped_ptr<NBestGenerator> nbest_generator(
362 std::unique_ptr<NBestGenerator> nbest_generator(
364363 data_and_converter->CreateNBestGenerator(&lattice));
365364
366365 const bool kSingleSegment = true; // For realtime conversion
2828
2929 #include "converter/pos_id_printer.h"
3030
31 #include <memory>
3132 #include <string>
3233
3334 #include "base/file_stream.h"
3435 #include "base/file_util.h"
3536 #include "base/flags.h"
36 #include "base/scoped_ptr.h"
37 #include "testing/base/public/googletest.h"
3738 #include "testing/base/public/gunit.h"
38
39 DECLARE_string(test_srcdir);
4039
4140 namespace mozc {
4241 namespace internal {
5453 pos_id_printer_.reset(new PosIdPrinter(pos_id_.get()));
5554 }
5655
57 scoped_ptr<InputFileStream> pos_id_;
58 scoped_ptr<PosIdPrinter> pos_id_printer_;
56 std::unique_ptr<InputFileStream> pos_id_;
57 std::unique_ptr<PosIdPrinter> pos_id_printer_;
5958 };
6059
6160 TEST_F(PosIdPrinterTest, BasicIdTest) {
2727 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2828
2929 #include <iostream> // NOLINT
30 #include <memory>
3031 #include <string>
3132 #include <vector>
3233
3334 #include "base/flags.h"
34 #include "base/scoped_ptr.h"
3535 #include "base/util.h"
3636 #include "converter/quality_regression_util.h"
3737 #include "engine/engine_factory.h"
4646 int main(int argc, char **argv) {
4747 InitGoogle(argv[0], &argc, &argv, false);
4848
49 scoped_ptr<EngineInterface> engine(EngineFactory::Create());
49 std::unique_ptr<EngineInterface> engine(EngineFactory::Create());
5050 QualityRegressionUtil util(engine->GetConverter());
5151
5252 vector<QualityRegressionUtil::TestItem> items;
2929
3030 #include <algorithm>
3131 #include <map>
32 #include <memory>
3233 #include <string>
3334 #include <utility>
3435 #include <vector>
4445 #include "protocol/commands.pb.h"
4546 #include "protocol/config.pb.h"
4647 #include "session/request_test_util.h"
48 #include "testing/base/public/googletest.h"
4749 #include "testing/base/public/gunit.h"
4850
49 DECLARE_string(test_tmpdir);
51 using std::unique_ptr;
5052
5153 using mozc::quality_regression::QualityRegressionUtil;
5254
168170
169171
170172 TEST_F(QualityRegressionTest, ChromeOSTest) {
171 scoped_ptr<EngineInterface> chromeos_engine(ChromeOsEngineFactory::Create());
173 unique_ptr<EngineInterface> chromeos_engine(ChromeOsEngineFactory::Create());
172174 QualityRegressionUtil util(chromeos_engine->GetConverter());
173175 RunTestForPlatform(QualityRegressionUtil::CHROMEOS, &util);
174176 }
175177
176178 // Test for desktop
177179 TEST_F(QualityRegressionTest, BasicTest) {
178 scoped_ptr<EngineInterface> engine(EngineFactory::Create());
180 unique_ptr<EngineInterface> engine(EngineFactory::Create());
179181 QualityRegressionUtil util(engine->GetConverter());
180182 RunTestForPlatform(QualityRegressionUtil::DESKTOP, &util);
181183 }
2929 #ifndef MOZC_CONVERTER_QUALITY_REGRESSION_UTIL_H_
3030 #define MOZC_CONVERTER_QUALITY_REGRESSION_UTIL_H_
3131
32 #include <memory>
3233 #include <string>
3334 #include <vector>
3435
3536 #include "base/port.h"
36 #include "base/scoped_ptr.h"
3737
3838 namespace mozc {
3939 class Segments;
8484
8585 private:
8686 ConverterInterface *converter_;
87 scoped_ptr<commands::Request> request_;
88 scoped_ptr<Segments> segments_;
87 std::unique_ptr<commands::Request> request_;
88 std::unique_ptr<Segments> segments_;
8989
9090 DISALLOW_COPY_AND_ASSIGN(QualityRegressionUtil);
9191 };
3030 #define MOZC_CONVERTER_SEGMENTS_H_
3131
3232 #include <deque>
33 #include <memory>
3334 #include <string>
3435 #include <utility>
3536 #include <vector>
3637
3738 #include "base/number_util.h"
3839 #include "base/port.h"
39 #include "base/scoped_ptr.h"
4040 #include "base/string_piece.h"
4141 #include "converter/lattice.h"
4242
339339 string key_;
340340 deque<Candidate *> candidates_;
341341 vector<Candidate> meta_candidates_;
342 scoped_ptr<ObjectPool<Candidate> > pool_;
342 std::unique_ptr<ObjectPool<Candidate>> pool_;
343343 DISALLOW_COPY_AND_ASSIGN(Segment);
344344 };
345345
480480 bool user_history_enabled_;
481481
482482 RequestType request_type_;
483 scoped_ptr<ObjectPool<Segment> > pool_;
483 std::unique_ptr<ObjectPool<Segment>> pool_;
484484 deque<Segment *> segments_;
485485 vector<RevertEntry> revert_entries_;
486 scoped_ptr<Lattice> cached_lattice_;
486 std::unique_ptr<Lattice> cached_lattice_;
487487
488488 DISALLOW_COPY_AND_ASSIGN(Segments);
489489 };
2929 // Handwriting module using zinnia.
3030
3131 #include "handwriting/zinnia_handwriting.h"
32
33 #include <memory>
34 #include <string>
3235
3336 #include "base/file_util.h"
3437 #include "base/logging.h"
103106 }
104107
105108 const int kMaxResultSize = 100;
106 scoped_ptr<zinnia::Result> result(recognizer_->classify(*character_,
107 kMaxResultSize));
108 if (result.get() == NULL) {
109 std::unique_ptr<zinnia::Result> result(
110 recognizer_->classify(*character_, kMaxResultSize));
111 if (result == nullptr) {
109112 return HANDWRITING_ERROR;
110113 }
111114
3131 #ifndef MOZC_HANDWRITING_ZINNIA_HANDWRITING_H_
3232 #define MOZC_HANDWRITING_ZINNIA_HANDWRITING_H_
3333
34 #include <memory>
3435 #include <string>
3536
3637 #include "base/port.h"
37 #include "base/scoped_ptr.h"
3838 #include "base/string_piece.h"
3939 #include "handwriting/handwriting_manager.h"
4040
5858 HandwritingStatus Commit(const Strokes &strokes, const string &result);
5959
6060 private:
61 scoped_ptr<zinnia::Recognizer> recognizer_;
62 scoped_ptr<zinnia::Character> character_;
63 scoped_ptr<Mmap> mmap_;
61 std::unique_ptr<zinnia::Recognizer> recognizer_;
62 std::unique_ptr<zinnia::Character> character_;
63 std::unique_ptr<Mmap> mmap_;
6464 bool zinnia_model_error_;
6565
6666 DISALLOW_COPY_AND_ASSIGN(ZinniaHandwriting);
3030
3131 #include "handwriting/zinnia_handwriting.h"
3232
33 #include <memory>
3334 #include <string>
3435 #include <vector>
3536
3637 #include "base/file_util.h"
3738 #include "testing/base/public/googletest.h"
3839 #include "testing/base/public/gunit.h"
39
40 DECLARE_string(test_srcdir);
4140
4241 namespace mozc {
4342 namespace handwriting {
5150 zinnia_.reset(new ZinniaHandwriting(filepath));
5251 }
5352
54 scoped_ptr<ZinniaHandwriting> zinnia_;
53 std::unique_ptr<ZinniaHandwriting> zinnia_;
5554 };
5655
5756 TEST_F(ZinniaHandwritingTest, Recognize) {
2929 #import <Carbon/Carbon.h>
3030 #import <Cocoa/Cocoa.h>
3131 #import <InputMethodKit/IMKServer.h>
32
33 #include <memory>
3234
3335 #import "mac/GoogleJapaneseInputController.h"
3436 #import "mac/GoogleJapaneseInputServer.h"
6668 // Start the converter server at this time explicitly to prevent the
6769 // slow-down of the response for initial key event.
6870 {
69 scoped_ptr<mozc::client::Client> client(new mozc::client::Client);
71 std::unique_ptr<mozc::client::Client> client(new mozc::client::Client);
7072 client->PingServer();
7173 }
7274 NSApplicationMain(argc, (const char **)argv);
00 MAJOR=2
11 MINOR=17
2 BUILD=2149
2 BUILD=2150
33 REVISION=102
44 # NACL_DICTIONARY_VERSION is the target version of the system dictionary to be
55 # downloaded by NaCl Mozc.
2929 #include "prediction/dictionary_predictor.h"
3030
3131 #include <algorithm>
32 #include <memory>
3233 #include <set>
3334 #include <string>
3435 #include <utility>
7273 #include "testing/base/public/gunit.h"
7374 #include "transliteration/transliteration.h"
7475
75 using ::testing::_;
76 using std::unique_ptr;
7677
7778 using mozc::dictionary::DictionaryInterface;
7879 using mozc::dictionary::DictionaryMock;
8283 using mozc::dictionary::SuffixToken;
8384 using mozc::dictionary::SuppressionDictionary;
8485 using mozc::dictionary::Token;
86 using testing::_;
8587
8688 DECLARE_string(test_tmpdir);
8789 DECLARE_bool(enable_expansion_for_dictionary_predictor);
272274
273275 private:
274276 const POSMatcher *pos_matcher_;
275 scoped_ptr<SuppressionDictionary> suppression_dictionary_;
276 scoped_ptr<const Connector> connector_;
277 scoped_ptr<const Segmenter> segmenter_;
278 scoped_ptr<const DictionaryInterface> suffix_dictionary_;
279 scoped_ptr<const DictionaryInterface> dictionary_;
277 unique_ptr<SuppressionDictionary> suppression_dictionary_;
278 unique_ptr<const Connector> connector_;
279 unique_ptr<const Segmenter> segmenter_;
280 unique_ptr<const DictionaryInterface> suffix_dictionary_;
281 unique_ptr<const DictionaryInterface> dictionary_;
280282 DictionaryMock *dictionary_mock_;
281 scoped_ptr<const PosGroup> pos_group_;
282 scoped_ptr<ImmutableConverterInterface> immutable_converter_;
283 scoped_ptr<ConverterMock> converter_;
284 scoped_ptr<const SuggestionFilter> suggestion_filter_;
285 scoped_ptr<TestableDictionaryPredictor> dictionary_predictor_;
283 unique_ptr<const PosGroup> pos_group_;
284 unique_ptr<ImmutableConverterInterface> immutable_converter_;
285 unique_ptr<ConverterMock> converter_;
286 unique_ptr<const SuggestionFilter> suggestion_filter_;
287 unique_ptr<TestableDictionaryPredictor> dictionary_predictor_;
286288 };
287289
288290 class CallCheckDictionary : public DictionaryInterface {
595597
596598 composer::Table table;
597599 table.LoadFromFile("system://romanji-hiragana.tsv");
598 scoped_ptr<MockDataAndPredictor> data_and_predictor(
600 unique_ptr<MockDataAndPredictor> data_and_predictor(
599601 new MockDataAndPredictor);
600602 // CallCheckDictionary is managed by data_and_predictor;
601603 CallCheckDictionary *check_dictionary = new CallCheckDictionary;
635637
636638 composer::Table table;
637639 table.LoadFromFile("system://romanji-hiragana.tsv");
638 scoped_ptr<MockDataAndPredictor> data_and_predictor(
640 unique_ptr<MockDataAndPredictor> data_and_predictor(
639641 new MockDataAndPredictor);
640642 // CallCheckDictionary is managed by data_and_predictor;
641643 CallCheckDictionary *check_dictionary = new CallCheckDictionary;
700702
701703 composer::Table table;
702704 table.LoadFromFile("system://romanji-hiragana.tsv");
703 scoped_ptr<MockDataAndPredictor> data_and_predictor(
705 unique_ptr<MockDataAndPredictor> data_and_predictor(
704706 new MockDataAndPredictor);
705707 // CallCheckDictionary is managed by data_and_predictor.
706708 CallCheckDictionary *check_dictionary = new CallCheckDictionary;
759761 transliteration::TransliterationType input_mode,
760762 const char *key, const char *expected_prefix,
761763 const char *expected_values[], size_t expected_values_size) {
762 scoped_ptr<MockDataAndPredictor> data_and_predictor(
764 unique_ptr<MockDataAndPredictor> data_and_predictor(
763765 CreateDictionaryPredictorWithMockData());
764766 const TestableDictionaryPredictor *predictor =
765767 data_and_predictor->dictionary_predictor();
814816 qwerty_request.set_special_romanji_table(
815817 commands::Request::QWERTY_MOBILE_TO_HIRAGANA);
816818
817 scoped_ptr<MockDataAndPredictor> data_and_predictor(
819 unique_ptr<MockDataAndPredictor> data_and_predictor(
818820 CreateDictionaryPredictorWithMockData());
819821 const TestableDictionaryPredictor *predictor =
820822 data_and_predictor->dictionary_predictor();
852854 const composer::Composer default_composer_;
853855 const ConversionRequest default_conversion_request_;
854856 const bool default_expansion_flag_;
855 scoped_ptr<ImmutableConverterInterface> immutable_converter_;
857 unique_ptr<ImmutableConverterInterface> immutable_converter_;
856858 };
857859
858860 TEST_F(DictionaryPredictorTest, OnOffTest) {
859 scoped_ptr<MockDataAndPredictor> data_and_predictor(
861 unique_ptr<MockDataAndPredictor> data_and_predictor(
860862 CreateDictionaryPredictorWithMockData());
861863 const DictionaryPredictor *predictor =
862864 data_and_predictor->dictionary_predictor();
892894 }
893895
894896 TEST_F(DictionaryPredictorTest, PartialSuggestion) {
895 scoped_ptr<MockDataAndPredictor> data_and_predictor(
897 unique_ptr<MockDataAndPredictor> data_and_predictor(
896898 CreateDictionaryPredictorWithMockData());
897899 {
898900 // Set up mock converter.
940942 "\xE3\x82\xB0\xE3\x83\xBC\xE3\x82\xB0\xE3\x83\xAB",
941943 &segments);
942944
943 scoped_ptr<MockDataAndPredictor> data_and_predictor(
945 unique_ptr<MockDataAndPredictor> data_and_predictor(
944946 CreateDictionaryPredictorWithMockData());
945947 const DictionaryPredictor *predictor =
946948 data_and_predictor->dictionary_predictor();
966968 "\xE3\x82\xB0\xE3\x83\xBC\xE3\x82\xB0\xE3\x83\xAB",
967969 &segments);
968970
969 scoped_ptr<MockDataAndPredictor> data_and_predictor(
971 unique_ptr<MockDataAndPredictor> data_and_predictor(
970972 CreateDictionaryPredictorWithMockData());
971973 const DictionaryPredictor *predictor =
972974 data_and_predictor->dictionary_predictor();
989991 "\xE4\xBA\xAC\xE9\x83\xBD",
990992 &segments);
991993
992 scoped_ptr<MockDataAndPredictor> data_and_predictor(
994 unique_ptr<MockDataAndPredictor> data_and_predictor(
993995 CreateDictionaryPredictorWithMockData());
994996 const DictionaryPredictor *predictor =
995997 data_and_predictor->dictionary_predictor();
12091211 commands::Request request;
12101212 request.set_zero_query_suggestion(true);
12111213
1212 scoped_ptr<MockDataAndPredictor> data_and_predictor(
1214 unique_ptr<MockDataAndPredictor> data_and_predictor(
12131215 CreateDictionaryPredictorWithMockData());
12141216 const DictionaryPredictor *predictor =
12151217 data_and_predictor->dictionary_predictor();
13311333
13321334 TEST_F(DictionaryPredictorTest, AggregateUnigramPrediction) {
13331335 Segments segments;
1334 scoped_ptr<MockDataAndPredictor> data_and_predictor(
1336 unique_ptr<MockDataAndPredictor> data_and_predictor(
13351337 CreateDictionaryPredictorWithMockData());
13361338 const DictionaryPredictor *predictor =
13371339 data_and_predictor->dictionary_predictor();
13691371 }
13701372
13711373 TEST_F(DictionaryPredictorTest, AggregateBigramPrediction) {
1372 scoped_ptr<MockDataAndPredictor> data_and_predictor(
1374 unique_ptr<MockDataAndPredictor> data_and_predictor(
13731375 CreateDictionaryPredictorWithMockData());
13741376 const DictionaryPredictor *predictor =
13751377 data_and_predictor->dictionary_predictor();
14481450 }
14491451
14501452 TEST_F(DictionaryPredictorTest, GetRealtimeCandidateMaxSize) {
1451 scoped_ptr<MockDataAndPredictor> data_and_predictor(
1453 unique_ptr<MockDataAndPredictor> data_and_predictor(
14521454 CreateDictionaryPredictorWithMockData());
14531455 const DictionaryPredictor *predictor =
14541456 data_and_predictor->dictionary_predictor();
15191521 }
15201522
15211523 TEST_F(DictionaryPredictorTest, GetRealtimeCandidateMaxSizeForMixed) {
1522 scoped_ptr<MockDataAndPredictor> data_and_predictor(
1524 unique_ptr<MockDataAndPredictor> data_and_predictor(
15231525 CreateDictionaryPredictorWithMockData());
15241526 const DictionaryPredictor *predictor =
15251527 data_and_predictor->dictionary_predictor();
15581560
15591561 TEST_F(DictionaryPredictorTest, AggregateRealtimeConversion) {
15601562 testing::MockDataManager data_manager;
1561 scoped_ptr<const DictionaryInterface> dictionary(new DictionaryMock);
1562 scoped_ptr<ConverterMock> converter(new ConverterMock);
1563 scoped_ptr<ImmutableConverterInterface> immutable_converter(
1563 unique_ptr<const DictionaryInterface> dictionary(new DictionaryMock);
1564 unique_ptr<ConverterMock> converter(new ConverterMock);
1565 unique_ptr<ImmutableConverterInterface> immutable_converter(
15641566 new ImmutableConverterMock);
1565 scoped_ptr<const DictionaryInterface> suffix_dictionary(
1567 unique_ptr<const DictionaryInterface> suffix_dictionary(
15661568 CreateSuffixDictionaryFromDataManager(data_manager));
1567 scoped_ptr<const Connector> connector(
1569 unique_ptr<const Connector> connector(
15681570 Connector::CreateFromDataManager(data_manager));
1569 scoped_ptr<const Segmenter> segmenter(
1571 unique_ptr<const Segmenter> segmenter(
15701572 Segmenter::CreateFromDataManager(data_manager));
1571 scoped_ptr<const SuggestionFilter> suggestion_filter(
1573 unique_ptr<const SuggestionFilter> suggestion_filter(
15721574 CreateSuggestionFilter(data_manager));
1573 scoped_ptr<TestableDictionaryPredictor> predictor(
1575 unique_ptr<TestableDictionaryPredictor> predictor(
15741576 new TestableDictionaryPredictor(converter.get(),
15751577 immutable_converter.get(),
15761578 dictionary.get(),
17501752 } // namespace
17511753
17521754 TEST_F(DictionaryPredictorTest, GetCandidateCutoffThreshold) {
1753 scoped_ptr<MockDataAndPredictor> data_and_predictor(
1755 unique_ptr<MockDataAndPredictor> data_and_predictor(
17541756 CreateDictionaryPredictorWithMockData());
17551757 const DictionaryPredictor *predictor =
17561758 data_and_predictor->dictionary_predictor();
17671769 }
17681770
17691771 TEST_F(DictionaryPredictorTest, AggregateSuffixPrediction) {
1770 scoped_ptr<MockDataAndPredictor> data_and_predictor(
1772 unique_ptr<MockDataAndPredictor> data_and_predictor(
17711773 new MockDataAndPredictor);
17721774 data_and_predictor->Init(NULL, new TestSuffixDictionary());
17731775
19501952 }
19511953
19521954 TEST_F(DictionaryPredictorTest, ZeroQuerySuggestionAfterNumbers) {
1953 scoped_ptr<MockDataAndPredictor> data_and_predictor(
1955 unique_ptr<MockDataAndPredictor> data_and_predictor(
19541956 CreateDictionaryPredictorWithMockData());
19551957 const DictionaryPredictor *predictor =
19561958 data_and_predictor->dictionary_predictor();
20362038 }
20372039
20382040 TEST_F(DictionaryPredictorTest, TriggerNumberZeroQuerySuggestion) {
2039 scoped_ptr<MockDataAndPredictor> data_and_predictor(
2041 unique_ptr<MockDataAndPredictor> data_and_predictor(
20402042 CreateDictionaryPredictorWithMockData());
20412043 const DictionaryPredictor *predictor =
20422044 data_and_predictor->dictionary_predictor();
21082110 }
21092111
21102112 TEST_F(DictionaryPredictorTest, TriggerZeroQuerySuggestion) {
2111 scoped_ptr<MockDataAndPredictor> data_and_predictor(
2113 unique_ptr<MockDataAndPredictor> data_and_predictor(
21122114 CreateDictionaryPredictorWithMockData());
21132115 const DictionaryPredictor *predictor =
21142116 data_and_predictor->dictionary_predictor();
21562158
21572159 TEST_F(DictionaryPredictorTest, GetHistoryKeyAndValue) {
21582160 Segments segments;
2159 scoped_ptr<MockDataAndPredictor> data_and_predictor(
2161 unique_ptr<MockDataAndPredictor> data_and_predictor(
21602162 CreateDictionaryPredictorWithMockData());
21612163 const DictionaryPredictor *predictor =
21622164 data_and_predictor->dictionary_predictor();
21882190 }
21892191
21902192 TEST_F(DictionaryPredictorTest, IsAggressiveSuggestion) {
2191 scoped_ptr<MockDataAndPredictor> data_and_predictor(
2193 unique_ptr<MockDataAndPredictor> data_and_predictor(
21922194 CreateDictionaryPredictorWithMockData());
21932195 const DictionaryPredictor *predictor =
21942196 data_and_predictor->dictionary_predictor();
22602262 config.set_use_realtime_conversion(true);
22612263 config::ConfigHandler::SetConfig(config);
22622264
2263 scoped_ptr<MockDataAndPredictor> data_and_predictor(
2265 unique_ptr<MockDataAndPredictor> data_and_predictor(
22642266 CreateDictionaryPredictorWithMockData());
22652267 const DictionaryPredictor *predictor =
22662268 data_and_predictor->dictionary_predictor();
23072309 config.set_use_realtime_conversion(true);
23082310 config::ConfigHandler::SetConfig(config);
23092311
2310 scoped_ptr<MockDataAndPredictor> data_and_predictor(
2312 unique_ptr<MockDataAndPredictor> data_and_predictor(
23112313 CreateDictionaryPredictorWithMockData());
23122314 const DictionaryPredictor *predictor =
23132315 data_and_predictor->dictionary_predictor();
23632365 }
23642366
23652367 TEST_F(DictionaryPredictorTest, GetMissSpelledPosition) {
2366 scoped_ptr<MockDataAndPredictor> data_and_predictor(
2368 unique_ptr<MockDataAndPredictor> data_and_predictor(
23672369 CreateDictionaryPredictorWithMockData());
23682370 const DictionaryPredictor *predictor =
23692371 data_and_predictor->dictionary_predictor();
24072409 }
24082410
24092411 TEST_F(DictionaryPredictorTest, RemoveMissSpelledCandidates) {
2410 scoped_ptr<MockDataAndPredictor> data_and_predictor(
2412 unique_ptr<MockDataAndPredictor> data_and_predictor(
24112413 CreateDictionaryPredictorWithMockData());
24122414 const DictionaryPredictor *predictor =
24132415 data_and_predictor->dictionary_predictor();
25872589
25882590 composer::Table table;
25892591 table.LoadFromFile("system://romanji-hiragana.tsv");
2590 scoped_ptr<MockDataAndPredictor> data_and_predictor(
2592 unique_ptr<MockDataAndPredictor> data_and_predictor(
25912593 CreateDictionaryPredictorWithMockData());
25922594 const TestableDictionaryPredictor *predictor =
25932595 data_and_predictor->dictionary_predictor();
26672669
26682670 composer::Table table;
26692671 table.LoadFromFile("system://kana.tsv");
2670 scoped_ptr<MockDataAndPredictor> data_and_predictor(
2672 unique_ptr<MockDataAndPredictor> data_and_predictor(
26712673 CreateDictionaryPredictorWithMockData());
26722674 const TestableDictionaryPredictor *predictor =
26732675 data_and_predictor->dictionary_predictor();
27502752 }
27512753
27522754 TEST_F(DictionaryPredictorTest, SetLMCost) {
2753 scoped_ptr<MockDataAndPredictor> data_and_predictor(
2755 unique_ptr<MockDataAndPredictor> data_and_predictor(
27542756 CreateDictionaryPredictorWithMockData());
27552757 const TestableDictionaryPredictor *predictor =
27562758 data_and_predictor->dictionary_predictor();
28112813 TEST_F(DictionaryPredictorTest, SuggestSpellingCorrection) {
28122814 testing::MockDataManager data_manager;
28132815
2814 scoped_ptr<MockDataAndPredictor> data_and_predictor(
2816 unique_ptr<MockDataAndPredictor> data_and_predictor(
28152817 new MockDataAndPredictor());
28162818 data_and_predictor->Init(CreateSystemDictionaryFromDataManager(data_manager),
28172819 CreateSuffixDictionaryFromDataManager(data_manager));
28352837 TEST_F(DictionaryPredictorTest, DoNotSuggestSpellingCorrectionBeforeMismatch) {
28362838 testing::MockDataManager data_manager;
28372839
2838 scoped_ptr<MockDataAndPredictor> data_and_predictor(
2840 unique_ptr<MockDataAndPredictor> data_and_predictor(
28392841 new MockDataAndPredictor());
28402842 data_and_predictor->Init(CreateSystemDictionaryFromDataManager(data_manager),
28412843 CreateSuffixDictionaryFromDataManager(data_manager));
28592861 TEST_F(DictionaryPredictorTest, MobileUnigramSuggestion) {
28602862 testing::MockDataManager data_manager;
28612863
2862 scoped_ptr<MockDataAndPredictor> data_and_predictor(
2864 unique_ptr<MockDataAndPredictor> data_and_predictor(
28632865 new MockDataAndPredictor());
28642866 data_and_predictor->Init(CreateSystemDictionaryFromDataManager(data_manager),
28652867 CreateSuffixDictionaryFromDataManager(data_manager));
29002902 TEST_F(DictionaryPredictorTest, MobileZeroQuerySuggestion) {
29012903 testing::MockDataManager data_manager;
29022904
2903 scoped_ptr<MockDataAndPredictor> data_and_predictor(
2905 unique_ptr<MockDataAndPredictor> data_and_predictor(
29042906 new MockDataAndPredictor());
29052907 data_and_predictor->Init(CreateSystemDictionaryFromDataManager(data_manager),
29062908 CreateSuffixDictionaryFromDataManager(data_manager));
29412943 TEST_F(DictionaryPredictorTest, DISABLED_MobileZeroQuerySuggestionAfterEOS) {
29422944 testing::MockDataManager data_manager;
29432945
2944 scoped_ptr<MockDataAndPredictor> data_and_predictor(
2946 unique_ptr<MockDataAndPredictor> data_and_predictor(
29452947 new MockDataAndPredictor());
29462948 data_and_predictor->Init(CreateSystemDictionaryFromDataManager(data_manager),
29472949 CreateSuffixDictionaryFromDataManager(data_manager));
30163018 }
30173019
30183020 TEST_F(DictionaryPredictorTest, PropagateUserDictionaryAttribute) {
3019 scoped_ptr<MockDataAndPredictor> data_and_predictor(
3021 unique_ptr<MockDataAndPredictor> data_and_predictor(
30203022 CreateDictionaryPredictorWithMockData());
30213023 const DictionaryPredictor *predictor =
30223024 data_and_predictor->dictionary_predictor();
31303132
31313133 TEST_F(DictionaryPredictorTest, PropagateRealtimeConversionBoundary) {
31323134 testing::MockDataManager data_manager;
3133 scoped_ptr<const DictionaryInterface> dictionary(new DictionaryMock);
3134 scoped_ptr<ConverterInterface> converter(new ConverterMock);
3135 scoped_ptr<ImmutableConverterInterface> immutable_converter(
3135 unique_ptr<const DictionaryInterface> dictionary(new DictionaryMock);
3136 unique_ptr<ConverterInterface> converter(new ConverterMock);
3137 unique_ptr<ImmutableConverterInterface> immutable_converter(
31363138 new ImmutableConverterMock);
3137 scoped_ptr<const DictionaryInterface> suffix_dictionary(
3139 unique_ptr<const DictionaryInterface> suffix_dictionary(
31383140 CreateSuffixDictionaryFromDataManager(data_manager));
3139 scoped_ptr<const Connector> connector(
3141 unique_ptr<const Connector> connector(
31403142 Connector::CreateFromDataManager(data_manager));
3141 scoped_ptr<const Segmenter> segmenter(
3143 unique_ptr<const Segmenter> segmenter(
31423144 Segmenter::CreateFromDataManager(data_manager));
3143 scoped_ptr<const SuggestionFilter> suggestion_filter(
3145 unique_ptr<const SuggestionFilter> suggestion_filter(
31443146 CreateSuggestionFilter(data_manager));
3145 scoped_ptr<TestableDictionaryPredictor> predictor(
3147 unique_ptr<TestableDictionaryPredictor> predictor(
31463148 new TestableDictionaryPredictor(converter.get(),
31473149 immutable_converter.get(),
31483150 dictionary.get(),
31833185 }
31843186
31853187 TEST_F(DictionaryPredictorTest, PropagateResultCosts) {
3186 scoped_ptr<MockDataAndPredictor> data_and_predictor(
3188 unique_ptr<MockDataAndPredictor> data_and_predictor(
31873189 CreateDictionaryPredictorWithMockData());
31883190 const TestableDictionaryPredictor *predictor =
31893191 data_and_predictor->dictionary_predictor();
32183220 }
32193221
32203222 TEST_F(DictionaryPredictorTest, PredictNCandidates) {
3221 scoped_ptr<MockDataAndPredictor> data_and_predictor(
3223 unique_ptr<MockDataAndPredictor> data_and_predictor(
32223224 CreateDictionaryPredictorWithMockData());
32233225 const TestableDictionaryPredictor *predictor =
32243226 data_and_predictor->dictionary_predictor();
32593261 }
32603262
32613263 TEST_F(DictionaryPredictorTest, SuggestFilteredwordForExactMatchOnMobile) {
3262 scoped_ptr<MockDataAndPredictor> data_and_predictor(
3264 unique_ptr<MockDataAndPredictor> data_and_predictor(
32633265 CreateDictionaryPredictorWithMockData());
32643266 const TestableDictionaryPredictor *predictor =
32653267 data_and_predictor->dictionary_predictor();
33123314 }
33133315
33143316 TEST_F(DictionaryPredictorTest, SuppressFilteredwordForExactMatch) {
3315 scoped_ptr<MockDataAndPredictor> data_and_predictor(
3317 unique_ptr<MockDataAndPredictor> data_and_predictor(
33163318 CreateDictionaryPredictorWithMockData());
33173319 const TestableDictionaryPredictor *predictor =
33183320 data_and_predictor->dictionary_predictor();
2929 #ifndef MOZC_PREDICTION_PREDICTOR_H_
3030 #define MOZC_PREDICTION_PREDICTOR_H_
3131
32 #include <memory>
3233 #include <string>
3334
34 #include "base/scoped_ptr.h"
3535 #include "converter/conversion_request.h"
3636 #include "prediction/predictor_interface.h"
3737
7777 virtual const string &GetPredictorName() const = 0;
7878
7979 protected:
80 scoped_ptr<PredictorInterface> dictionary_predictor_;
81 scoped_ptr<PredictorInterface> user_history_predictor_;
80 std::unique_ptr<PredictorInterface> dictionary_predictor_;
81 std::unique_ptr<PredictorInterface> user_history_predictor_;
8282 };
8383
8484 // TODO(team): The name should be DesktopPredictor
2929 #include "prediction/predictor.h"
3030
3131 #include <cstddef>
32 #include <memory>
3233 #include <string>
3334
3435 #include "base/logging.h"
5051 #include "testing/base/public/googletest.h"
5152 #include "testing/base/public/gunit.h"
5253
53 DECLARE_string(test_tmpdir);
54
55 using ::testing::AtMost;
56 using ::testing::Return;
57 using ::testing::_;
54 using std::unique_ptr;
55
5856 using mozc::dictionary::DictionaryMock;
5957 using mozc::dictionary::SuppressionDictionary;
58 using testing::AtMost;
59 using testing::Return;
60 using testing::_;
6061
6162 namespace mozc {
6263 namespace {
146147 config::ConfigHandler::SetConfig(config);
147148 }
148149
149 scoped_ptr<commands::Request> mobile_client_request_;
150 scoped_ptr<mozc::composer::Composer> mobile_composer_;
151 scoped_ptr<ConversionRequest> default_request_;
152 scoped_ptr<ConversionRequest> mobile_request_;
150 unique_ptr<commands::Request> mobile_client_request_;
151 unique_ptr<mozc::composer::Composer> mobile_composer_;
152 unique_ptr<ConversionRequest> default_request_;
153 unique_ptr<ConversionRequest> mobile_request_;
153154 };
154155
155156 TEST_F(PredictorTest, AllPredictorsReturnTrue) {
156 scoped_ptr<DefaultPredictor> predictor(
157 unique_ptr<DefaultPredictor> predictor(
157158 new DefaultPredictor(new NullPredictor(true),
158159 new NullPredictor(true)));
159160 Segments segments;
167168 }
168169
169170 TEST_F(PredictorTest, MixedReturnValue) {
170 scoped_ptr<DefaultPredictor> predictor(
171 unique_ptr<DefaultPredictor> predictor(
171172 new DefaultPredictor(new NullPredictor(true),
172173 new NullPredictor(false)));
173174 Segments segments;
181182 }
182183
183184 TEST_F(PredictorTest, AllPredictorsReturnFalse) {
184 scoped_ptr<DefaultPredictor> predictor(
185 unique_ptr<DefaultPredictor> predictor(
185186 new DefaultPredictor(new NullPredictor(false),
186187 new NullPredictor(false)));
187188 Segments segments;
195196 }
196197
197198 TEST_F(PredictorTest, CallPredictorsForSuggestion) {
198 scoped_ptr<DefaultPredictor> predictor(
199 unique_ptr<DefaultPredictor> predictor(
199200 new DefaultPredictor(
200201 new CheckCandSizePredictor(GET_CONFIG(suggestions_size)),
201202 new CheckCandSizePredictor(GET_CONFIG(suggestions_size))));
211212
212213 TEST_F(PredictorTest, CallPredictorsForPrediction) {
213214 const int kPredictionSize = 100;
214 scoped_ptr<DefaultPredictor> predictor(
215 unique_ptr<DefaultPredictor> predictor(
215216 new DefaultPredictor(new CheckCandSizePredictor(kPredictionSize),
216217 new CheckCandSizePredictor(kPredictionSize)));
217218 Segments segments;
228229 // To be owned by DefaultPredictor
229230 MockPredictor *predictor1 = new MockPredictor;
230231 MockPredictor *predictor2 = new MockPredictor;
231 scoped_ptr<DefaultPredictor> predictor(new DefaultPredictor(predictor1,
232 unique_ptr<DefaultPredictor> predictor(new DefaultPredictor(predictor1,
232233 predictor2));
233234 Segments segments;
234235 {
245246 }
246247
247248 TEST_F(PredictorTest, CallPredictorsForMobileSuggestion) {
248 scoped_ptr<MobilePredictor> predictor(
249 unique_ptr<MobilePredictor> predictor(
249250 new MobilePredictor(new CheckCandSizePredictor(20),
250251 new CheckCandSizePredictor(3)));
251252 Segments segments;
259260 }
260261
261262 TEST_F(PredictorTest, CallPredictorsForMobilePartialSuggestion) {
262 scoped_ptr<MobilePredictor> predictor(
263 unique_ptr<MobilePredictor> predictor(
263264 new MobilePredictor(new CheckCandSizePredictor(20),
264265 // We don't call history predictior
265266 new CheckCandSizePredictor(-1)));
274275 }
275276
276277 TEST_F(PredictorTest, CallPredictorsForMobilePrediction) {
277 scoped_ptr<MobilePredictor> predictor(
278 unique_ptr<MobilePredictor> predictor(
278279 new MobilePredictor(new CheckCandSizePredictor(1000),
279280 new CheckCandSizePredictor(3)));
280281 Segments segments;
289290
290291 TEST_F(PredictorTest, CallPredictorsForMobilePartialPrediction) {
291292 DictionaryMock dictionary_mock;
292 scoped_ptr<MobilePredictor> predictor(
293 unique_ptr<MobilePredictor> predictor(
293294 new MobilePredictor(
294295 new CheckCandSizePredictor(1000),
295296 new UserHistoryPredictor(
311312 // Will be owned by MobilePredictor
312313 MockPredictor *predictor1 = new MockPredictor;
313314 MockPredictor *predictor2 = new MockPredictor;
314 scoped_ptr<MobilePredictor> predictor(
315 unique_ptr<MobilePredictor> predictor(
315316 new MobilePredictor(predictor1, predictor2));
316317 Segments segments;
317318 {
330331 TEST_F(PredictorTest, DisableAllSuggestion) {
331332 NullPredictor *predictor1 = new NullPredictor(true);
332333 NullPredictor *predictor2 = new NullPredictor(true);
333 scoped_ptr<DefaultPredictor> predictor(new DefaultPredictor(predictor1,
334 unique_ptr<DefaultPredictor> predictor(new DefaultPredictor(predictor1,
334335 predictor2));
335336 Segments segments;
336337 {
2929 #ifndef MOZC_PREDICTION_SUGGESTION_FILTER_H_
3030 #define MOZC_PREDICTION_SUGGESTION_FILTER_H_
3131
32 #include <memory>
3233 #include <string>
3334
3435 #include "base/port.h"
35 #include "base/scoped_ptr.h"
3636
3737 namespace mozc {
3838 namespace storage {
4848 bool IsBadSuggestion(const string &text) const;
4949
5050 private:
51 scoped_ptr<mozc::storage::ExistenceFilter> filter_;
51 std::unique_ptr<mozc::storage::ExistenceFilter> filter_;
5252
5353 DISALLOW_COPY_AND_ASSIGN(SuggestionFilter);
5454 };
55
5556 } // namespace mozc
5657
5758 #endif // MOZC_PREDICTION_SUGGESTION_FILTER_H_
3131 #include <algorithm>
3232 #include <cctype>
3333 #include <climits>
34 #include <memory>
3435 #include <string>
3536 #include <unordered_set>
3637
5960 #include "storage/lru_cache.h"
6061 #include "usage_stats/usage_stats.h"
6162
63 using std::unique_ptr;
64 using std::unordered_set;
65
6266 using mozc::commands::Request;
6367 using mozc::dictionary::SuppressionDictionary;
6468 using mozc::dictionary::DictionaryInterface;
6569 using mozc::dictionary::POSMatcher;
66 using std::unordered_set;
6770
6871 // This flag is set by predictor.cc
6972 // We can remove this after the ambiguity expansion feature get stable.
13311334 // |input_key| is "あk" and |base_key| is "あ"
13321335 string input_key;
13331336 string base_key;
1334 scoped_ptr<Trie<string> > expanded;
1337 unique_ptr<Trie<string>> expanded;
13351338 GetInputKeyFromSegments(request, segments, &input_key, &base_key, &expanded);
13361339
13371340 int trial = 0;
13661369 void UserHistoryPredictor::GetInputKeyFromSegments(
13671370 const ConversionRequest &request, const Segments &segments,
13681371 string *input_key, string *base,
1369 scoped_ptr<Trie<string> > *expanded) {
1372 unique_ptr<Trie<string>> *expanded) {
13701373 DCHECK(input_key);
13711374 DCHECK(base);
13721375
2929 #ifndef MOZC_PREDICTION_USER_HISTORY_PREDICTOR_H_
3030 #define MOZC_PREDICTION_USER_HISTORY_PREDICTOR_H_
3131
32 #include <memory>
3233 #include <queue>
3334 #include <set>
3435 #include <string>
3637 #include <vector>
3738
3839 #include "base/freelist.h"
39 #include "base/scoped_ptr.h"
4040 #include "base/string_piece.h"
4141 #include "base/trie.h"
4242 #include "dictionary/dictionary_interface.h"
7272 bool Save() const;
7373
7474 private:
75 scoped_ptr<storage::StringStorageInterface> storage_;
75 std::unique_ptr<storage::StringStorageInterface> storage_;
7676 };
7777
7878 // UserHistoryPredictor is NOT thread safe.
432432 static void GetInputKeyFromSegments(
433433 const ConversionRequest &request, const Segments &segments,
434434 string *input_key, string *base,
435 scoped_ptr<Trie<string> >*expanded);
435 std::unique_ptr<Trie<string>>*expanded);
436436
437437 bool InsertCandidates(RequestType request_type,
438438 const ConversionRequest &request, Segments *segments,
517517
518518 bool content_word_learning_enabled_;
519519 bool updated_;
520 scoped_ptr<DicCache> dic_;
521 mutable scoped_ptr<UserHistoryPredictorSyncer> syncer_;
520 std::unique_ptr<DicCache> dic_;
521 mutable std::unique_ptr<UserHistoryPredictorSyncer> syncer_;
522522 };
523523
524524 } // namespace mozc
2828
2929 #include "prediction/user_history_predictor.h"
3030
31 #include <memory>
3132 #include <set>
3233 #include <string>
3334
5253 #include "testing/base/public/googletest.h"
5354 #include "testing/base/public/gunit.h"
5455
55 DECLARE_string(test_tmpdir);
5656 DECLARE_bool(enable_expansion_for_user_history_predictor);
57
58 using std::unique_ptr;
5759
5860 using mozc::commands::Request;
5961 using mozc::dictionary::DictionaryMock;
301303
302304 private:
303305 struct DataAndPredictor {
304 scoped_ptr<DictionaryMock> dictionary;
305 scoped_ptr<SuppressionDictionary> suppression_dictionary;
306 scoped_ptr<UserHistoryPredictor> predictor;
306 unique_ptr<DictionaryMock> dictionary;
307 unique_ptr<SuppressionDictionary> suppression_dictionary;
308 unique_ptr<UserHistoryPredictor> predictor;
307309 };
308310
309311 DataAndPredictor *CreateDataAndPredictor() const {
322324 config::Config default_config_;
323325 const commands::Request default_request_;
324326 commands::Request mobile_request_;
325 scoped_ptr<ConversionRequest> default_conversion_request_;
326 scoped_ptr<ConversionRequest> mobile_conversion_request_;
327 unique_ptr<ConversionRequest> default_conversion_request_;
328 unique_ptr<ConversionRequest> mobile_conversion_request_;
327329 const bool default_expansion_;
328 scoped_ptr<DataAndPredictor> data_and_predictor_;
330 unique_ptr<DataAndPredictor> data_and_predictor_;
329331 };
330332
331333 TEST_F(UserHistoryPredictorTest, UserHistoryPredictorTest) {
28762878 // input_key: "あk"
28772879 // key_base: "あ"
28782880 // key_expanded: "か","き","く","け", "こ"
2879 scoped_ptr<Trie<string> > expanded(new Trie<string>);
2881 unique_ptr<Trie<string>> expanded(new Trie<string>);
28802882 // "か"
28812883 expanded->AddEntry("\xe3\x81\x8b", "");
28822884 // "き"
29622964 // input_key: "あし"
29632965 // key_base: "あ"
29642966 // key_expanded: "し","じ"
2965 scoped_ptr<Trie<string> > expanded(new Trie<string>);
2967 unique_ptr<Trie<string>> expanded(new Trie<string>);
29662968 // "し"
29672969 expanded->AddEntry("\xe3\x81\x97", "");
29682970 // "じ"
30523054 // input_key: "あ"
30533055 // key_base: "あ"
30543056 // key_expanded: "か","き","く","け", "こ"
3055 scoped_ptr<Trie<string> > expanded(new Trie<string>);
3057 unique_ptr<Trie<string>> expanded(new Trie<string>);
30563058 // "か", "か"
30573059 expanded->AddEntry("\xe3\x81\x8b", "\xe3\x81\x8b");
30583060 // "き", "き"
31273129 // input_key: "あし"
31283130 // key_base: "あ"
31293131 // key_expanded: "し","じ"
3130 scoped_ptr<Trie<string> > expanded(new Trie<string>);
3132 unique_ptr<Trie<string>> expanded(new Trie<string>);
31313133 // "し", "し"
31323134 expanded->AddEntry("\xe3\x81\x97", "\xe3\x81\x97");
31333135 // "じ", "じ"
32303232 } // namespace
32313233
32323234 TEST_F(UserHistoryPredictorTest, GetInputKeyFromSegmentsRoman) {
3233 scoped_ptr<composer::Table> table(new composer::Table);
3235 unique_ptr<composer::Table> table(new composer::Table);
32343236 table->LoadFromFile("system://romanji-hiragana.tsv");
3235 scoped_ptr<composer::Composer> composer(
3237 unique_ptr<composer::Composer> composer(
32363238 new composer::Composer(table.get(), &default_request()));
32373239 ConversionRequest conversion_request;
32383240 Segments segments;
32463248 FLAGS_enable_expansion_for_user_history_predictor = true;
32473249 string input_key;
32483250 string base;
3249 scoped_ptr<Trie<string> > expanded;
3251 unique_ptr<Trie<string>> expanded;
32503252 UserHistoryPredictor::GetInputKeyFromSegments(conversion_request,
32513253 segments,
32523254 &input_key,
32723274 FLAGS_enable_expansion_for_user_history_predictor = false;
32733275 string input_key;
32743276 string base;
3275 scoped_ptr<Trie<string> > expanded;
3277 unique_ptr<Trie<string>> expanded;
32763278 UserHistoryPredictor::GetInputKeyFromSegments(conversion_request,
32773279 segments,
32783280 &input_key,
32953297
32963298 TEST_F(UserHistoryPredictorTest, GetInputKeyFromSegmentsRomanRandom) {
32973299 FLAGS_enable_expansion_for_user_history_predictor = true;
3298 scoped_ptr<composer::Table> table(new composer::Table);
3300 unique_ptr<composer::Table> table(new composer::Table);
32993301 table->LoadFromFile("system://romanji-hiragana.tsv");
3300 scoped_ptr<composer::Composer> composer(
3302 unique_ptr<composer::Composer> composer(
33013303 new composer::Composer(table.get(), &default_request()));
33023304 ConversionRequest conversion_request;
33033305 Segments segments;
33173319 &segments);
33183320 string input_key;
33193321 string base;
3320 scoped_ptr<Trie<string> > expanded;
3322 unique_ptr<Trie<string>> expanded;
33213323 UserHistoryPredictor::GetInputKeyFromSegments(conversion_request,
33223324 segments,
33233325 &input_key,
33303332 // input_key != base by compoesr modification.
33313333 TEST_F(UserHistoryPredictorTest, GetInputKeyFromSegmentsShouldNotCrash) {
33323334 FLAGS_enable_expansion_for_user_history_predictor = true;
3333 scoped_ptr<composer::Table> table(new composer::Table);
3335 unique_ptr<composer::Table> table(new composer::Table);
33343336 table->LoadFromFile("system://romanji-hiragana.tsv");
3335 scoped_ptr<composer::Composer> composer(
3337 unique_ptr<composer::Composer> composer(
33363338 new composer::Composer(table.get(), &default_request()));
33373339 ConversionRequest conversion_request;
33383340 Segments segments;
33443346 &segments);
33453347 string input_key;
33463348 string base;
3347 scoped_ptr<Trie<string> > expanded;
3349 unique_ptr<Trie<string>> expanded;
33483350 UserHistoryPredictor::GetInputKeyFromSegments(conversion_request,
33493351 segments,
33503352 &input_key,
33553357
33563358 TEST_F(UserHistoryPredictorTest, GetInputKeyFromSegmentsRomanN) {
33573359 FLAGS_enable_expansion_for_user_history_predictor = true;
3358 scoped_ptr<composer::Table> table(new composer::Table);
3360 unique_ptr<composer::Table> table(new composer::Table);
33593361 table->LoadFromFile("system://romanji-hiragana.tsv");
3360 scoped_ptr<composer::Composer> composer(
3362 unique_ptr<composer::Composer> composer(
33613363 new composer::Composer(table.get(), &default_request()));
3362 scoped_ptr<ConversionRequest> conversion_request;
3364 unique_ptr<ConversionRequest> conversion_request;
33633365 Segments segments;
33643366
33653367 {
33683370 conversion_request.get(), &segments);
33693371 string input_key;
33703372 string base;
3371 scoped_ptr<Trie<string> > expanded;
3373 unique_ptr<Trie<string>> expanded;
33723374 UserHistoryPredictor::GetInputKeyFromSegments(*conversion_request,
33733375 segments,
33743376 &input_key,
33973399 conversion_request.get(), &segments);
33983400 string input_key;
33993401 string base;
3400 scoped_ptr<Trie<string> > expanded;
3402 unique_ptr<Trie<string>> expanded;
34013403 UserHistoryPredictor::GetInputKeyFromSegments(*conversion_request,
34023404 segments,
34033405 &input_key,
34183420 conversion_request.get(), &segments);
34193421 string input_key;
34203422 string base;
3421 scoped_ptr<Trie<string> > expanded;
3423 unique_ptr<Trie<string>> expanded;
34223424 UserHistoryPredictor::GetInputKeyFromSegments(*conversion_request,
34233425 segments,
34243426 &input_key,
34393441 conversion_request.get(), &segments);
34403442 string input_key;
34413443 string base;
3442 scoped_ptr<Trie<string> > expanded;
3444 unique_ptr<Trie<string>> expanded;
34433445 UserHistoryPredictor::GetInputKeyFromSegments(*conversion_request,
34443446 segments,
34453447 &input_key,
34643466
34653467 TEST_F(UserHistoryPredictorTest, GetInputKeyFromSegmentsFlickN) {
34663468 FLAGS_enable_expansion_for_user_history_predictor = true;
3467 scoped_ptr<composer::Table> table(new composer::Table);
3469 unique_ptr<composer::Table> table(new composer::Table);
34683470 table->LoadFromFile("system://flick-hiragana.tsv");
3469 scoped_ptr<composer::Composer> composer(
3471 unique_ptr<composer::Composer> composer(
34703472 new composer::Composer(table.get(), &default_request()));
34713473 ConversionRequest conversion_request;
34723474 Segments segments;
34763478 &segments);
34773479 string input_key;
34783480 string base;
3479 scoped_ptr<Trie<string> > expanded;
3481 unique_ptr<Trie<string>> expanded;
34803482 UserHistoryPredictor::GetInputKeyFromSegments(conversion_request,
34813483 segments,
34823484 &input_key,
35003502
35013503 TEST_F(UserHistoryPredictorTest, GetInputKeyFromSegments12KeyN) {
35023504 FLAGS_enable_expansion_for_user_history_predictor = true;
3503 scoped_ptr<composer::Table> table(new composer::Table);
3505 unique_ptr<composer::Table> table(new composer::Table);
35043506 table->LoadFromFile("system://12keys-hiragana.tsv");
3505 scoped_ptr<composer::Composer> composer(
3507 unique_ptr<composer::Composer> composer(
35063508 new composer::Composer(table.get(), &default_request()));
35073509 ConversionRequest conversion_request;
35083510 Segments segments;
35153517 &segments);
35163518 string input_key;
35173519 string base;
3518 scoped_ptr<Trie<string> > expanded;
3520 unique_ptr<Trie<string>> expanded;
35193521 UserHistoryPredictor::GetInputKeyFromSegments(conversion_request,
35203522 segments,
35213523 &input_key,
35383540 }
35393541
35403542 TEST_F(UserHistoryPredictorTest, GetInputKeyFromSegmentsKana) {
3541 scoped_ptr<composer::Table> table(new composer::Table);
3543 unique_ptr<composer::Table> table(new composer::Table);
35423544 table->LoadFromFile("system://kana.tsv");
3543 scoped_ptr<composer::Composer> composer(
3545 unique_ptr<composer::Composer> composer(
35443546 new composer::Composer(table.get(), &default_request()));
35453547 ConversionRequest conversion_request;
35463548 Segments segments;
35533555 FLAGS_enable_expansion_for_user_history_predictor = true;
35543556 string input_key;
35553557 string base;
3556 scoped_ptr<Trie<string> > expanded;
3558 unique_ptr<Trie<string>> expanded;
35573559 UserHistoryPredictor::GetInputKeyFromSegments(conversion_request,
35583560 segments,
35593561 &input_key,
35793581 FLAGS_enable_expansion_for_user_history_predictor = false;
35803582 string input_key;
35813583 string base;
3582 scoped_ptr<Trie<string> > expanded;
3584 unique_ptr<Trie<string>> expanded;
35833585 UserHistoryPredictor::GetInputKeyFromSegments(conversion_request,
35843586 segments,
35853587 &input_key,
3636 namespace mozc {
3737 namespace client {
3838 class SendCommandInterface;
39 } // namespace mozc::client
39 } // namespace client
4040
4141 namespace renderer {
4242 namespace mac {
6060 // Relocate windows to prevent overlaps.
6161 void AlignWindows();
6262
63 // We don't use scoped_ptr<> for those two pointers because we don't
63 // We don't use std::unique_ptr<> for those two pointers because we don't
6464 // want to include CandidateWindow.h when the user of this class
6565 // includes this file. Because CandidateWindow.h and InfolistWindow.h are in
6666 // Objective-C++, the user file must be .mm files if we use
67 // scoped_ptr<>.
67 // std::unique_ptr<>.
6868 CandidateWindow *candidate_window_;
6969 CandidateWindow *cascading_window_;
7070 InfolistWindow *infolist_window_;
7171 mozc::commands::RendererCommand command_;
72
7273 DISALLOW_COPY_AND_ASSIGN(CandidateController);
7374 };
7475
75 } // namespace mozc::renderer::mac
76 } // namespace mozc::renderer
76 } // namespace mac
77 } // namespace renderer
7778 } // namespace mozc
79
7880 #endif // MOZC_RENDERER_MAC_CANDIDATE_CONTROLLER_H_
2929 #ifndef MOZC_RENDERER_MAC_MAC_SERVER_H_
3030 #define MOZC_RENDERER_MAC_MAC_SERVER_H_
3131
32 #include <pthread.h>
33
34 #include <memory>
3235 #include <string>
33 #include <pthread.h>
3436
3537 #include "base/mutex.h"
3638 #include "base/port.h"
4042 namespace mozc {
4143 namespace renderer {
4244 namespace mac {
45
4346 class CandidateController;
4447
4548 // This is an implementation class of UI-renderer server based on
4851 class MacServer : public RendererServer {
4952 public:
5053 MacServer(int argc, const char **argv);
54
5155 virtual bool AsyncExecCommand(string *proto_message);
5256 virtual int StartMessageLoop();
5357
6266 Mutex mutex_;
6367 pthread_cond_t event_;
6468 string message_;
65 scoped_ptr<CandidateController> controller_;
69 std::unique_ptr<CandidateController> controller_;
6670 int argc_;
6771 const char **argv_;
6872
6973 DISALLOW_COPY_AND_ASSIGN(MacServer);
7074 };
71 } // mac
72 } // renderer
73 } // mozc
75
76 } // namespace mac
77 } // namespace renderer
78 } // namespace mozc
7479
7580 #endif // MOZC_RENDERER_MAC_MAC_SERVER_H_
2828
2929 #include "renderer/renderer_client.h"
3030
31 #include <climits>
3132 #include <cstddef>
32 #include <climits>
33 #include <memory>
3334 #include <string>
3435
3536 #include "base/clock.h"
278279 scoped_lock l(&pending_command_mutex_);
279280 if (ipc_client_factory_interface_ != NULL &&
280281 pending_command_.get() != NULL) {
281 scoped_ptr<IPCClientInterface> client(CreateIPCClient());
282 std::unique_ptr<IPCClientInterface> client(CreateIPCClient());
282283 if (client.get() != NULL) {
283284 CallCommand(client.get(), *(pending_command_.get()));
284285 }
310311 bool disable_renderer_path_check_;
311312 bool suppress_error_dialog_;
312313 IPCClientFactoryInterface *ipc_client_factory_interface_;
313 scoped_ptr<commands::RendererCommand> pending_command_;
314 std::unique_ptr<commands::RendererCommand> pending_command_;
314315 Mutex pending_command_mutex_;
315316 };
316317
371372 }
372373
373374 bool RendererClient::Shutdown(bool force) {
374 scoped_ptr<IPCClientInterface> client(CreateIPCClient());
375 std::unique_ptr<IPCClientInterface> client(CreateIPCClient());
375376
376377 if (client.get() == NULL) {
377378 LOG(ERROR) << "Cannot make client object";
438439
439440 VLOG(2) << "Sending: " << command.DebugString();
440441
441 scoped_ptr<IPCClientInterface> client(CreateIPCClient());
442 std::unique_ptr<IPCClientInterface> client(CreateIPCClient());
442443
443444 // In case IPCClient::Init fails with timeout error, the last error should be
444445 // checked here. See also b/3264926.
2929 #ifndef MOZC_RENDERER_RENDERER_CLIENT_H_
3030 #define MOZC_RENDERER_RENDERER_CLIENT_H_
3131
32 #include <memory>
3233 #include <string>
34
3335 #include "base/port.h"
34 #include "base/scoped_ptr.h"
3536 #include "renderer/renderer_interface.h"
3637
3738 namespace mozc {
133134
134135 IPCClientFactoryInterface *ipc_client_factory_interface_;
135136
136 scoped_ptr<RendererLauncherInterface> renderer_launcher_;
137 std::unique_ptr<RendererLauncherInterface> renderer_launcher_;
137138 RendererLauncherInterface *renderer_launcher_interface_;
138139 };
139 } // renderer
140 } // mozc
140
141 } // namespace renderer
142 } // namespace mozc
143
141144 #endif // MOZC_RENDERER_RENDERER_CLIENT_H_
2929 #ifndef MOZC_RENDERER_RENDERER_SERVER_H_
3030 #define MOZC_RENDERER_RENDERER_SERVER_H_
3131
32 #include <memory>
3233 #include <string>
34
3335 #include "base/port.h"
3436 #include "ipc/ipc.h"
3537 #include "renderer/renderer_interface.h"
4446 // RendererServer base class. Implement Async* method.
4547 class RendererServer : public IPCServer {
4648 public:
47 explicit RendererServer();
49 RendererServer();
4850 virtual ~RendererServer();
4951
5052 void SetRendererInterface(RendererInterface *renderer_interface);
9092 private:
9193 uint32 timeout_;
9294 RendererInterface *renderer_interface_;
93 scoped_ptr<ParentApplicationWatchDog> watch_dog_;
94 scoped_ptr<RendererServerSendCommand> send_command_;
95 std::unique_ptr<ParentApplicationWatchDog> watch_dog_;
96 std::unique_ptr<RendererServerSendCommand> send_command_;
9597
9698 DISALLOW_COPY_AND_ASSIGN(RendererServer);
9799 };
100
98101 } // namespace renderer
99102 } // namespace mozc
103
100104 #endif // MOZC_RENDERER_RENDERER_SERVER_H_
2626 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2727 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2828
29 #include "renderer/renderer_server.h"
30
31 #include <memory>
2932 #include <string>
3033
3134 #include "base/logging.h"
3639 #include "protocol/renderer_command.pb.h"
3740 #include "renderer/renderer_client.h"
3841 #include "renderer/renderer_interface.h"
39 #include "renderer/renderer_server.h"
42 #include "testing/base/public/googletest.h"
4043 #include "testing/base/public/gunit.h"
41 DECLARE_string(test_tmpdir);
4244
4345 namespace mozc {
4446 namespace renderer {
141143 SystemUtil::SetUserProfileDirectory(FLAGS_test_tmpdir);
142144 mozc::IPCClientFactoryOnMemory on_memory_client_factory;
143145
144 scoped_ptr<TestRendererServer> server(new TestRendererServer);
146 std::unique_ptr<TestRendererServer> server(new TestRendererServer);
145147 TestRenderer renderer;
146148 server->SetRendererInterface(&renderer);
147149 #ifdef OS_MACOSX
3939 #include <atlmisc.h>
4040 #include <atlgdi.h>
4141
42 #include <memory>
4243 #include <string>
4344
4445 #include "base/const.h"
4546 #include "base/coordinates.h"
4647 #include "base/port.h"
47 #include "base/scoped_ptr.h"
4848
4949 namespace mozc {
5050
144144 // to avoid problematic side effect as discussed in b/2317702.
145145 void EnableOrDisableWindowForWorkaround();
146146
147 scoped_ptr<commands::Candidates> candidates_;
147 std::unique_ptr<commands::Candidates> candidates_;
148148 WTL::CBitmap footer_logo_;
149149 Size footer_logo_display_size_;
150150 client::SendCommandInterface *send_command_interface_;
151 scoped_ptr<TableLayout> table_layout_;
152 scoped_ptr<TextRenderer> text_renderer_;
151 std::unique_ptr<TableLayout> table_layout_;
152 std::unique_ptr<TextRenderer> text_renderer_;
153153 int indicator_width_;
154154 bool metrics_changed_;
155155 bool mouse_moving_;
156156
157157 DISALLOW_COPY_AND_ASSIGN(CandidateWindow);
158158 };
159
159160 } // namespace win32
160161 } // namespace renderer
161162 } // namespace mozc
163
162164 #endif // MOZC_RENDERER_WIN32_CANDIDATE_WINDOW_H_
2929 #ifndef MOZC_RENDERER_WIN32_INDICATOR_WINDOW_H_
3030 #define MOZC_RENDERER_WIN32_INDICATOR_WINDOW_H_
3131
32 #include <memory>
33
3234 #include "base/coordinates.h"
3335 #include "base/port.h"
34 #include "base/scoped_ptr.h"
3536
3637 namespace mozc {
3738
5758
5859 private:
5960 class WindowImpl;
60 scoped_ptr<WindowImpl> impl_;
61 std::unique_ptr<WindowImpl> impl_;
6162
6263 DISALLOW_COPY_AND_ASSIGN(IndicatorWindow);
6364 };
3939 #include <atlmisc.h>
4040 #include <atlgdi.h>
4141
42 #include <memory>
4243 #include <string>
4344
4445 #include "base/const.h"
4546 #include "base/coordinates.h"
4647 #include "base/port.h"
47 #include "base/scoped_ptr.h"
4848
4949 namespace mozc {
5050
112112 Size DoPaintRow(WTL::CDCHandle dc, int row, int ypos);
113113
114114 client::SendCommandInterface *send_command_interface_;
115 scoped_ptr<commands::Candidates> candidates_;
116 scoped_ptr<TextRenderer> text_renderer_;
117 scoped_ptr<renderer::RendererStyle> style_;
115 std::unique_ptr<commands::Candidates> candidates_;
116 std::unique_ptr<TextRenderer> text_renderer_;
117 std::unique_ptr<renderer::RendererStyle> style_;
118118 bool metrics_changed_;
119119 bool visible_;
120120
121121 DISALLOW_COPY_AND_ASSIGN(InfolistWindow);
122122 };
123
123124 } // namespace win32
124125 } // namespace renderer
125126 } // namespace mozc
127
126128 #endif // MOZC_RENDERER_WIN32_INFOLIST_WINDOW_H_
2828
2929 #include "renderer/win32/win32_renderer_client.h"
3030
31 #include <memory>
32
3133 #include "base/logging.h"
3234 #include "base/mutex.h"
3335 #include "base/scoped_handle.h"
188190 return nullptr;
189191 }
190192
191 scoped_ptr<SenderThread> thread(new SenderThread(
193 std::unique_ptr<SenderThread> thread(new SenderThread(
192194 command_event.take(), quit_event.take()));
193195
194196 // Resume the thread.
3030 #define MOZC_RENDERER_WIN32_WIN32_RENDERER_UTIL_H_
3131
3232 #include <Windows.h>
33
34 #include <memory>
35 #include <string>
3336 #include <vector>
34 #include <string>
3537
3638 #include "base/port.h"
37 #include "base/scoped_ptr.h"
3839 #include "testing/base/public/gunit_prod.h"
3940 // for FRIEND_TEST()
4041
422423 int initial_offset,
423424 vector<LineLayout> *line_layouts);
424425
425 scoped_ptr<SystemPreferenceInterface> system_preference_;
426 scoped_ptr<WindowPositionInterface> window_position_;
426 std::unique_ptr<SystemPreferenceInterface> system_preference_;
427 std::unique_ptr<WindowPositionInterface> window_position_;
427428
428429 DISALLOW_COPY_AND_ASSIGN(LayoutManager);
429430 };
2626 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2727 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2828
29 #include "renderer/win32/win32_renderer_util.h"
30
2931 #include <Shlwapi.h>
3032
3133 #define _ATL_NO_AUTOMATIC_NAMESPACE
4143 #include "base/win_font_test_helper.h"
4244 #include "protocol/renderer_command.pb.h"
4345 #include "renderer/win32/win32_font_util.h"
44 #include "renderer/win32/win32_renderer_util.h"
4546 #include "testing/base/public/gunit.h"
4647
4748 // Following functions should be placed in global namespace for Koenig look-up
12341235
12351236 // Check DPI scale: 100%
12361237 {
1237 scoped_ptr<WindowPositionEmulator> emulator(
1238 std::unique_ptr<WindowPositionEmulator> emulator(
12381239 WindowPositionEmulator::Create());
12391240 const HWND hwnd = emulator->RegisterWindow(
12401241 kWindowClassName, kWindowRect, kClientOffset, kClientSize, 1.0);
12651266
12661267 // Interestingly, the following results are independent of DPI scaling.
12671268 {
1268 scoped_ptr<WindowPositionEmulator> emulator(
1269 std::unique_ptr<WindowPositionEmulator> emulator(
12691270 WindowPositionEmulator::Create());
12701271 const HWND hwnd = emulator->RegisterWindow(
12711272 kWindowClassName, kWindowRect, kClientOffset, kClientSize, 10.0);
3030 #define MOZC_RENDERER_WIN32_WIN32_SERVER_H_
3131
3232 #include <windows.h>
33
34 #include <memory>
3335 #include <string>
3436
3537 #include "base/mutex.h"
6971 string message_;
7072 Mutex mutex_;
7173 HANDLE event_;
72 scoped_ptr<WindowManager> window_manager_;
74 std::unique_ptr<WindowManager> window_manager_;
7375
7476 DISALLOW_COPY_AND_ASSIGN(Win32Server);
7577 };
3131
3232 #include <windows.h>
3333
34 #include <memory>
35
3436 #include "base/port.h"
35 #include "base/scoped_ptr.h"
3637
3738 namespace mozc {
3839
7273 void PreTranslateMessage(const MSG &message);
7374
7475 private:
75 scoped_ptr<CandidateWindow> main_window_;
76 scoped_ptr<CandidateWindow> cascading_window_;
77 scoped_ptr<CompositionWindowList> composition_window_list_;
78 scoped_ptr<IndicatorWindow> indicator_window_;
79 scoped_ptr<InfolistWindow> infolist_window_;
80 scoped_ptr<LayoutManager> layout_manager_;
81 scoped_ptr<WorkingAreaInterface> working_area_;
76 std::unique_ptr<CandidateWindow> main_window_;
77 std::unique_ptr<CandidateWindow> cascading_window_;
78 std::unique_ptr<CompositionWindowList> composition_window_list_;
79 std::unique_ptr<IndicatorWindow> indicator_window_;
80 std::unique_ptr<InfolistWindow> infolist_window_;
81 std::unique_ptr<LayoutManager> layout_manager_;
82 std::unique_ptr<WorkingAreaInterface> working_area_;
8283 client::SendCommandInterface *send_command_interface_;
8384 POINT last_position_;
8485 int candidates_finger_print_;
2828
2929 #include "rewriter/calculator_rewriter.h"
3030
31 #include <memory>
3132 #include <string>
3233
3334 #include "base/logging.h"
34 #include "base/scoped_ptr.h"
3535 #include "base/system_util.h"
3636 #include "config/config_handler.h"
3737 #include "converter/conversion_request.h"
128128
129129 private:
130130 CalculatorMock calculator_mock_;
131 scoped_ptr<ConverterInterface> converter_mock_;
131 std::unique_ptr<ConverterInterface> converter_mock_;
132132 config::Config default_config_;
133133 };
134134
135135 TEST_F(CalculatorRewriterTest, InsertCandidateTest) {
136 scoped_ptr<CalculatorRewriter> calculator_rewriter(
136 std::unique_ptr<CalculatorRewriter> calculator_rewriter(
137137 BuildCalculatorRewriterWithConverterMock());
138138
139139 {
165165 // Pretend "key" is calculated to "value".
166166 calculator_mock().SetCalculatePair("key", "value", true);
167167
168 scoped_ptr<CalculatorRewriter> calculator_rewriter(
168 std::unique_ptr<CalculatorRewriter> calculator_rewriter(
169169 BuildCalculatorRewriterWithConverterMock());
170170 const int counter_at_first = calculator_mock().calculation_counter();
171171 const ConversionRequest request;
193193 // Since this test depends on the actual implementation of
194194 // Converter::ResizeSegments(), we cannot use converter mock here. However,
195195 // the test itself is independent of data.
196 scoped_ptr<EngineInterface> engine_(MockDataEngineFactory::Create());
197 scoped_ptr<CalculatorRewriter> calculator_rewriter(
196 std::unique_ptr<EngineInterface> engine_(MockDataEngineFactory::Create());
197 std::unique_ptr<CalculatorRewriter> calculator_rewriter(
198198 new CalculatorRewriter(engine_->GetConverter()));
199199 const ConversionRequest request;
200200
234234 calculator_mock().SetCalculatePair(kExpression, "3", true);
235235 const ConversionRequest request;
236236
237 scoped_ptr<CalculatorRewriter> calculator_rewriter(
237 std::unique_ptr<CalculatorRewriter> calculator_rewriter(
238238 BuildCalculatorRewriterWithConverterMock());
239239
240240 Segments segments;
258258 // Since this test depends on the actual implementation of
259259 // Converter::ResizeSegments(), we cannot use converter mock here. However,
260260 // the test itself is independent of data.
261 scoped_ptr<EngineInterface> engine_(MockDataEngineFactory::Create());
262 scoped_ptr<CalculatorRewriter> calculator_rewriter(
261 std::unique_ptr<EngineInterface> engine_(MockDataEngineFactory::Create());
262 std::unique_ptr<CalculatorRewriter> calculator_rewriter(
263263 new CalculatorRewriter(engine_->GetConverter()));
264264 {
265265 Segments segments;
286286
287287 TEST_F(CalculatorRewriterTest, MobileEnvironmentTest) {
288288 commands::Request input;
289 scoped_ptr<EngineInterface> engine_(MockDataEngineFactory::Create());
290 scoped_ptr<CalculatorRewriter> rewriter(
289 std::unique_ptr<EngineInterface> engine_(MockDataEngineFactory::Create());
290 std::unique_ptr<CalculatorRewriter> rewriter(
291291 new CalculatorRewriter(engine_->GetConverter()));
292292
293293 {
308308 config::ConfigHandler::GetDefaultConfig(&config);
309309
310310 const ConversionRequest request;
311 scoped_ptr<EngineInterface> engine_(MockDataEngineFactory::Create());
312 scoped_ptr<CalculatorRewriter> calculator_rewriter(
311 std::unique_ptr<EngineInterface> engine_(MockDataEngineFactory::Create());
312 std::unique_ptr<CalculatorRewriter> calculator_rewriter(
313313 new CalculatorRewriter(engine_->GetConverter()));
314314 {
315315 Segments segments;
2929 #include "rewriter/collocation_rewriter.h"
3030
3131 #include <algorithm>
32 #include <memory>
3233 #include <string>
3334 #include <vector>
3435
550551 }
551552
552553 private:
553 scoped_ptr<ExistenceFilter> filter_;
554 std::unique_ptr<ExistenceFilter> filter_;
554555
555556 DISALLOW_COPY_AND_ASSIGN(CollocationFilter);
556557 };
574575 }
575576
576577 private:
577 scoped_ptr<ExistenceFilter> filter_;
578 std::unique_ptr<ExistenceFilter> filter_;
578579
579580 DISALLOW_COPY_AND_ASSIGN(SuppressionFilter);
580581 };
3030 #define MOZC_REWRITER_COLLOCATION_REWRITER_H_
3131
3232 #include "base/port.h"
33 #include "base/scoped_ptr.h"
3433 #include "converter/segments.h"
3534 #include "rewriter/rewriter_interface.h"
3635
6564 // Used to test if pairs of strings are in collocation data. Since it's a
6665 // bloom filter, non-collocation words are sometimes mistakenly boosted,
6766 // although the possibility is very low (0.001% by default).
68 scoped_ptr<CollocationFilter> collocation_filter_;
67 std::unique_ptr<CollocationFilter> collocation_filter_;
6968
7069 // Used to test if pairs of content key and value are "ateji". Since it's a
7170 // bloom filter, non-ateji words are sometimes mistakenly classified as ateji,
7271 // resulting in passing on the right collocations, though the possibility is
7372 // very low (0.001% by default).
74 scoped_ptr<SuppressionFilter> suppression_filter_;
73 std::unique_ptr<SuppressionFilter> suppression_filter_;
7574 };
7675
7776 } // namespace mozc
2929 #include "rewriter/collocation_rewriter.h"
3030
3131 #include <cstddef>
32 #include <memory>
3233 #include <string>
3334
3435 #include "base/logging.h"
135136
136137 private:
137138 config::Config config_backup_;
138 scoped_ptr<const CollocationRewriter> collocation_rewriter_;
139 std::unique_ptr<const CollocationRewriter> collocation_rewriter_;
140
139141 DISALLOW_COPY_AND_ASSIGN(CollocationRewriterTest);
140142 };
141143
2828
2929 #include "rewriter/correction_rewriter.h"
3030
31 #include <memory>
3132 #include <string>
33
3234 #include "config/config_handler.h"
3335 #include "converter/conversion_request.h"
3436 #include "converter/segments.h"
7779 config::ConfigHandler::SetConfig(default_config_);
7880 }
7981
80 scoped_ptr<CorrectionRewriter> rewriter_;
82 std::unique_ptr<CorrectionRewriter> rewriter_;
8183
8284 private:
8385 config::Config default_config_;
2929 #include "rewriter/date_rewriter.h"
3030
3131 #include <cstddef>
32 #include <memory>
3233
3334 #include "base/clock.h"
3435 #include "base/clock_mock.h"
3536 #include "base/port.h"
36 #include "base/scoped_ptr.h"
3737 #include "base/system_util.h"
3838 #include "base/util.h"
3939 #include "composer/composer.h"
220220 };
221221
222222 TEST_F(DateRewriterTest, DateRewriteTest) {
223 scoped_ptr<ClockMock> mock_clock(
223 std::unique_ptr<ClockMock> mock_clock(
224224 new ClockMock(kTestSeconds, kTestMicroSeconds));
225225 Clock::SetClockForUnitTest(mock_clock.get());
226226
3232 #define MOZC_REWRITER_DICTIONARY_GENERATOR_H_
3333
3434 #include <map>
35 #include <memory>
3536 #include <string>
3637 #include <vector>
3738
3839 #include "base/port.h"
39 #include "base/scoped_ptr.h"
4040
4141 namespace mozc {
4242
108108 bool Output(const string &filename) const;
109109
110110 private:
111 scoped_ptr<ObjectPool<Token> > token_pool_;
112 scoped_ptr<map<uint64, Token *> > token_map_;
113 scoped_ptr<const UserPOSInterface> user_pos_;
111 std::unique_ptr<ObjectPool<Token> > token_pool_;
112 std::unique_ptr<map<uint64, Token *> > token_map_;
113 std::unique_ptr<const UserPOSInterface> user_pos_;
114114 const uint16 open_bracket_id_;
115115 const uint16 close_bracket_id_;
116116
119119
120120 } // namespace rewriter
121121 } // namespace mozc
122
122123 #endif // MOZC_REWRITER_DICTIONARY_GENERATOR_H_
2929 #ifndef MOZC_REWRITER_EMOJI_REWRITER_H_
3030 #define MOZC_REWRITER_EMOJI_REWRITER_H_
3131
32 #include <stddef.h>
32 #include <cstddef>
3333
34 #include "base/scoped_ptr.h"
3534 #include "converter/segments.h"
3635 #include "rewriter/embedded_dictionary.h"
3736 #include "rewriter/rewriter_interface.h"
2929 #include "rewriter/emoji_rewriter.h"
3030
3131 #include <cstddef>
32 #include <memory>
3233 #include <string>
3334
3435 #include "base/logging.h"
195196 }
196197
197198 const ConversionRequest request_;
198 scoped_ptr<EmojiRewriter> rewriter_;
199 std::unique_ptr<EmojiRewriter> rewriter_;
199200
200201 private:
201202 string original_profile_directory_;
3030
3131 #include <algorithm>
3232 #include <cstring>
33 #include <memory>
3334 #include <string>
3435 #include <vector>
3536
6263 }
6364
6465 private:
65 scoped_ptr<EmbeddedDictionary> dic_;
66 std::unique_ptr<EmbeddedDictionary> dic_;
6667 };
6768
6869 class ValueCostCompare {
2828
2929 #include "rewriter/focus_candidate_rewriter.h"
3030
31 #include <memory>
3132 #include <string>
3233 #include <vector>
3334
3435 #include "base/number_util.h"
35 #include "base/scoped_ptr.h"
3636 #include "base/system_util.h"
3737 #include "config/config_handler.h"
3838 #include "converter/segments.h"
8080 }
8181
8282 private:
83 scoped_ptr<FocusCandidateRewriter> rewriter_;
83 std::unique_ptr<FocusCandidateRewriter> rewriter_;
8484 config::Config default_config_;
8585 testing::MockDataManager mock_data_manager_;
8686 };
2828
2929 #include "rewriter/language_aware_rewriter.h"
3030
31 #include <memory>
3132 #include <string>
3233
3334 #include "base/logging.h"
34 #include "base/scoped_ptr.h"
3535 #include "base/system_util.h"
3636 #include "base/util.h"
3737 #include "composer/composer.h"
4848 #include "dictionary/pos_matcher.h"
4949 #include "protocol/commands.pb.h"
5050 #include "protocol/config.pb.h"
51 #include "testing/base/public/googletest.h"
5152 #include "testing/base/public/gunit.h"
5253 #include "usage_stats/usage_stats.h"
5354 #include "usage_stats/usage_stats_testing_util.h"
5455
55 DECLARE_string(test_tmpdir);
56 using std::unique_ptr;
5657
5758 using mozc::dictionary::DictionaryMock;
5859 using mozc::dictionary::Token;
8081 usage_stats::UsageStats::ClearAllStatsForTest();
8182 #ifdef MOZC_USE_PACKED_DICTIONARY
8283 // Registers mocked PackedDataManager.
83 scoped_ptr<packed::PackedDataManager>
84 unique_ptr<packed::PackedDataManager>
8485 data_manager(new packed::PackedDataManager());
8586 CHECK(data_manager->Init(string(kPackedSystemDictionary_data,
8687 kPackedSystemDictionary_size)));
109110 dictionary_mock_.get());
110111 }
111112
112 scoped_ptr<DictionaryMock> dictionary_mock_;
113 unique_ptr<DictionaryMock> dictionary_mock_;
113114 usage_stats::scoped_usage_stats_enabler usage_stats_enabler_;
114115
115116 private:
166167 "naru",
167168 Token::NONE);
168169
169 scoped_ptr<LanguageAwareRewriter> rewriter(CreateLanguageAwareRewriter());
170 unique_ptr<LanguageAwareRewriter> rewriter(CreateLanguageAwareRewriter());
170171
171172 const string &kPrefix = "\xE2\x86\x92 "; // "→ "
172173 const string &kDidYouMean =
283284 }
284285
285286 TEST_F(LanguageAwareRewriterTest, LanguageAwareInputUsageStats) {
286 scoped_ptr<LanguageAwareRewriter> rewriter(CreateLanguageAwareRewriter());
287 unique_ptr<LanguageAwareRewriter> rewriter(CreateLanguageAwareRewriter());
287288
288289 EXPECT_STATS_NOT_EXIST("LanguageAwareSuggestionTriggered");
289290 EXPECT_STATS_NOT_EXIST("LanguageAwareSuggestionCommitted");
2929 #include "rewriter/number_rewriter.h"
3030
3131 #include <cstddef>
32 #include <memory>
3233 #include <string>
3334
3435 #include "base/logging.h"
4647 #include "dictionary/pos_matcher.h"
4748 #include "protocol/commands.pb.h"
4849 #include "protocol/config.pb.h"
50 #include "testing/base/public/googletest.h"
4951 #include "testing/base/public/gunit.h"
50
51 DECLARE_string(test_tmpdir);
5252
5353 using mozc::dictionary::POSMatcher;
5454
135135 // TODO(noriyukit): Currently this test uses mock data manager. Check if we
136136 // can remove this registration of packed data manager.
137137 // Registers mocked PackedDataManager.
138 scoped_ptr<packed::PackedDataManager>
138 std::unique_ptr<packed::PackedDataManager>
139139 data_manager(new packed::PackedDataManager());
140140 CHECK(data_manager->Init(string(kPackedSystemDictionary_data,
141141 kPackedSystemDictionary_size)));
174174 } // namespace
175175
176176 TEST_F(NumberRewriterTest, BasicTest) {
177 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
177 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
178178
179179 Segments segments;
180180 Segment *seg = segments.push_back_segment();
246246 TestData(Segments::SUGGESTION, 8),
247247 };
248248
249 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
249 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
250250
251251 for (size_t i = 0; i < arraysize(test_data_list); ++i) {
252252 TestData& test_data = test_data_list[i];
265265 }
266266
267267 TEST_F(NumberRewriterTest, BasicTestWithSuffix) {
268 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
268 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
269269
270270 Segments segments;
271271 Segment *seg = segments.push_back_segment();
323323 }
324324
325325 TEST_F(NumberRewriterTest, BasicTestWithNumberSuffix) {
326 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
326 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
327327
328328 Segments segments;
329329 Segment *seg = segments.push_back_segment();
352352 }
353353
354354 TEST_F(NumberRewriterTest, TestWithMultipleNumberSuffix) {
355 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
355 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
356356
357357 Segments segments;
358358 Segment *seg = segments.push_back_segment();
399399 }
400400
401401 TEST_F(NumberRewriterTest, SpecialFormBoundaries) {
402 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
402 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
403403 Segments segments;
404404
405405 // Special forms doesn't have zeros.
446446 }
447447
448448 TEST_F(NumberRewriterTest, OneOfCandidatesIsEmpty) {
449 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
449 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
450450
451451 Segments segments;
452452 Segment *seg = segments.push_back_segment();
498498 }
499499
500500 TEST_F(NumberRewriterTest, RewriteDoesNotHappen) {
501 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
501 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
502502
503503 Segments segments;
504504 Segment *seg = segments.push_back_segment();
519519 }
520520
521521 TEST_F(NumberRewriterTest, NumberIsZero) {
522 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
522 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
523523
524524 Segments segments;
525525 Segment *seg = segments.push_back_segment();
561561 }
562562
563563 TEST_F(NumberRewriterTest, NumberIsZeroZero) {
564 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
564 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
565565
566566 Segments segments;
567567 Segment *seg = segments.push_back_segment();
601601 }
602602
603603 TEST_F(NumberRewriterTest, NumberIs19Digit) {
604 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
604 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
605605
606606 Segments segments;
607607 Segment *seg = segments.push_back_segment();
685685 }
686686
687687 TEST_F(NumberRewriterTest, NumberIsGreaterThanUInt64Max) {
688 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
688 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
689689
690690 Segments segments;
691691 Segment *seg = segments.push_back_segment();
790790 }
791791
792792 TEST_F(NumberRewriterTest, NumberIsGoogol) {
793 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
793 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
794794
795795 Segments segments;
796796 Segment *seg = segments.push_back_segment();
864864 TEST_F(NumberRewriterTest, RankingForKanjiCandidate) {
865865 // If kanji candidate is higher before we rewrite segments,
866866 // kanji should have higher raking.
867 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
867 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
868868
869869 Segments segments;
870870 {
900900 TEST_F(NumberRewriterTest, ModifyExsistingRanking) {
901901 // Modify exsisting ranking even if the converter returns unusual results
902902 // due to dictionary noise, etc.
903 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
903 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
904904
905905 Segments segments;
906906 {
947947 }
948948
949949 TEST_F(NumberRewriterTest, EraseExistingCandidates) {
950 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
950 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
951951
952952 Segments segments;
953953 {
10021002 }
10031003
10041004 TEST_F(NumberRewriterTest, SeparatedArabicsTest) {
1005 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
1005 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
10061006
10071007 // Expected data to succeed tests.
10081008 const char* kSuccess[][3] = {
10691069 // In this case, NumberRewriter should not clear
10701070 // Segment::Candidate::USER_DICTIONARY bit in the base candidate.
10711071 TEST_F(NumberRewriterTest, PreserveUserDictionaryAttibute) {
1072 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
1072 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
10731073 {
10741074 Segments segments;
10751075 {
11091109
11101110 TEST_F(NumberRewriterTest, DuplicateCandidateTest) {
11111111 // To reproduce issue b/6714268.
1112 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
1112 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
11131113
11141114 Segments segments;
11151115 Segment *segment = segments.push_back_segment();
11481148
11491149 TEST_F(NumberRewriterTest, MobileEnvironmentTest) {
11501150 commands::Request input;
1151 scoped_ptr<NumberRewriter> rewriter(CreateNumberRewriter());
1151 std::unique_ptr<NumberRewriter> rewriter(CreateNumberRewriter());
11521152
11531153 {
11541154 input.set_mixed_conversion(true);
11651165
11661166 TEST_F(NumberRewriterTest, NonNumberNounTest) {
11671167 // Test if "百舌鳥" is not rewritten to "100舌鳥", etc.
1168 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
1168 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
11691169 Segments segments;
11701170 Segment *segment = segments.push_back_segment();
11711171 segment->set_key("\xE3\x82\x82\xE3\x81\x9A"); // "もず"
11811181 }
11821182
11831183 TEST_F(NumberRewriterTest, RewriteForPartialSuggestion_b16765535) {
1184 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
1184 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
11851185
11861186 const char kBubun[] = "\xE9\x83\xA8\xE5\x88\x86"; // "部分"
11871187 Segments segments;
2929 #include "rewriter/rewriter.h"
3030
3131 #include <cstddef>
32 #include <memory>
3233 #include <string>
3334
3435 #include "base/system_util.h"
4041 #include "dictionary/pos_group.h"
4142 #include "protocol/config.pb.h"
4243 #include "rewriter/rewriter_interface.h"
44 #include "testing/base/public/googletest.h"
4345 #include "testing/base/public/gunit.h"
44
45 DECLARE_string(test_tmpdir);
4646
4747 using mozc::dictionary::DictionaryInterface;
4848 using mozc::dictionary::PosGroup;
9090 return rewriter_.get();
9191 }
9292
93 scoped_ptr<ConverterMock> converter_mock_;
94 scoped_ptr<const PosGroup> pos_group_;
95 scoped_ptr<RewriterImpl> rewriter_;
93 std::unique_ptr<ConverterMock> converter_mock_;
94 std::unique_ptr<const PosGroup> pos_group_;
95 std::unique_ptr<RewriterImpl> rewriter_;
9696 };
9797
9898 // Command rewriter should be disabled on Android build. b/5851240
2929 #include "rewriter/single_kanji_rewriter.h"
3030
3131 #include <algorithm>
32 #include <memory>
33 #include <set>
3234 #include <string>
3335 #include <vector>
34 #include <set>
3536
3637 #include "base/logging.h"
3738 #include "base/singleton.h"
8586 }
8687
8788 private:
88 scoped_ptr<EmbeddedDictionary> dic_;
89 std::unique_ptr<EmbeddedDictionary> dic_;
8990 };
9091
9192 struct SingleKanjiListCompare {
2929 #include "rewriter/single_kanji_rewriter.h"
3030
3131 #include <cstddef>
32 #include <memory>
3233 #include <string>
3334
34 #include "base/scoped_ptr.h"
3535 #include "base/system_util.h"
3636 #include "base/util.h"
3737 #include "config/config_handler.h"
4141 #include "dictionary/pos_matcher.h"
4242 #include "protocol/commands.pb.h"
4343 #include "protocol/config.pb.h"
44 #include "testing/base/public/googletest.h"
4445 #include "testing/base/public/gunit.h"
45
46 DECLARE_string(test_tmpdir);
4746
4847 using mozc::dictionary::POSMatcher;
4948
7675 const ConversionRequest default_request_;
7776
7877 private:
79 scoped_ptr<testing::MockDataManager> data_manager_;
78 std::unique_ptr<testing::MockDataManager> data_manager_;
8079 const POSMatcher *pos_matcher_;
8180 };
8281
8382 TEST_F(SingleKanjiRewriterTest, CapabilityTest) {
84 scoped_ptr<SingleKanjiRewriter> rewriter(CreateSingleKanjiRewriter());
83 std::unique_ptr<SingleKanjiRewriter> rewriter(CreateSingleKanjiRewriter());
8584
8685 commands::Request client_request;
8786 client_request.set_mixed_conversion(false);
9089 }
9190
9291 TEST_F(SingleKanjiRewriterTest, SetKeyTest) {
93 scoped_ptr<SingleKanjiRewriter> rewriter(CreateSingleKanjiRewriter());
92 std::unique_ptr<SingleKanjiRewriter> rewriter(CreateSingleKanjiRewriter());
9493
9594 Segments segments;
9695 Segment *segment = segments.add_segment();
115114
116115 TEST_F(SingleKanjiRewriterTest, MobileEnvironmentTest) {
117116 commands::Request client_request;
118 scoped_ptr<SingleKanjiRewriter> rewriter(CreateSingleKanjiRewriter());
117 std::unique_ptr<SingleKanjiRewriter> rewriter(CreateSingleKanjiRewriter());
119118
120119 {
121120 client_request.set_mixed_conversion(true);
2929 #ifndef MOZC_REWRITER_SYMBOL_REWRITER_H_
3030 #define MOZC_REWRITER_SYMBOL_REWRITER_H_
3131
32 #include <memory>
3233 #include <string>
3334
34 #include "base/scoped_ptr.h"
3535 #include "rewriter/embedded_dictionary.h"
3636 #include "rewriter/rewriter_interface.h"
3737 // for FRIEND_TEST()
101101 bool RewriteEachCandidate(Segments *segments) const;
102102
103103 const ConverterInterface *parent_converter_;
104 scoped_ptr<EmbeddedDictionary> dictionary_;
104 std::unique_ptr<EmbeddedDictionary> dictionary_;
105105 };
106106
107107 } // namespace mozc
2828
2929 #include "rewriter/symbol_rewriter.h"
3030
31 #include <memory>
3132 #include <string>
3233
3334 #include "base/logging.h"
34 #include "base/scoped_ptr.h"
3535 #include "base/system_util.h"
3636 #include "base/util.h"
3737 #include "config/config_handler.h"
4242 #include "engine/mock_data_engine_factory.h"
4343 #include "protocol/commands.pb.h"
4444 #include "protocol/config.pb.h"
45 #include "testing/base/public/googletest.h"
4546 #include "testing/base/public/gunit.h"
46
47 DECLARE_string(test_tmpdir);
4847
4948 namespace mozc {
5049
122121 config::ConfigHandler::SetConfig(config);
123122 }
124123
125 scoped_ptr<EngineInterface> engine_;
124 std::unique_ptr<EngineInterface> engine_;
126125 const ConverterInterface *converter_;
127 scoped_ptr<testing::MockDataManager> data_manager_;
126 std::unique_ptr<testing::MockDataManager> data_manager_;
128127 };
129128
130129 // Note that these tests are using default symbol dictionary.
3030
3131 #include <cctype>
3232 #include <cstddef>
33 #include <memory>
3334 #include <string>
3435
3536 #include "base/logging.h"
36 #include "base/scoped_ptr.h"
3737 #include "base/system_util.h"
3838 #include "base/util.h"
3939 #include "composer/composer.h"
4949 #include "dictionary/pos_matcher.h"
5050 #include "protocol/commands.pb.h"
5151 #include "protocol/config.pb.h"
52 #include "testing/base/public/googletest.h"
5253 #include "testing/base/public/gunit.h"
5354 #include "transliteration/transliteration.h"
5455 #include "usage_stats/usage_stats.h"
5556 #include "usage_stats/usage_stats_testing_util.h"
56
57 DECLARE_string(test_tmpdir);
5857
5958 namespace mozc {
6059
8685 usage_stats::UsageStats::ClearAllStatsForTest();
8786 #ifdef MOZC_USE_PACKED_DICTIONARY
8887 // Registers mocked PackedDataManager.
89 scoped_ptr<packed::PackedDataManager>
88 std::unique_ptr<packed::PackedDataManager>
9089 data_manager(new packed::PackedDataManager());
9190 CHECK(data_manager->Init(string(kPackedSystemDictionary_data,
9291 kPackedSystemDictionary_size)));
128127 };
129128
130129 TEST_F(TransliterationRewriterTest, T13nFromKeyTest) {
131 scoped_ptr<TransliterationRewriter> t13n_rewriter(
130 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
132131 CreateTransliterationRewriter());
133132 Segments segments;
134133 Segment *segment = segments.add_segment();
179178 }
180179
181180 TEST_F(TransliterationRewriterTest, T13nFromComposerTest) {
182 scoped_ptr<TransliterationRewriter> t13n_rewriter(
181 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
183182 CreateTransliterationRewriter());
184183
185184 composer::Table table;
240239
241240
242241 TEST_F(TransliterationRewriterTest, KeyOfT13nFromComposerTest) {
243 scoped_ptr<TransliterationRewriter> t13n_rewriter(
242 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
244243 CreateTransliterationRewriter());
245244
246245 composer::Table table;
283282
284283
285284 TEST_F(TransliterationRewriterTest, T13nWithMultiSegmentsTest) {
286 scoped_ptr<TransliterationRewriter> t13n_rewriter(
285 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
287286 CreateTransliterationRewriter());
288287
289288 composer::Table table;
336335 }
337336
338337 TEST_F(TransliterationRewriterTest, ComposerValidationTest) {
339 scoped_ptr<TransliterationRewriter> t13n_rewriter(
338 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
340339 CreateTransliterationRewriter());
341340
342341 composer::Table table;
399398 }
400399
401400 TEST_F(TransliterationRewriterTest, RewriteWithSameComposerTest) {
402 scoped_ptr<TransliterationRewriter> t13n_rewriter(
401 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
403402 CreateTransliterationRewriter());
404403
405404 composer::Table table;
538537 }
539538
540539 TEST_F(TransliterationRewriterTest, NoKeyTest) {
541 scoped_ptr<TransliterationRewriter> t13n_rewriter(
540 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
542541 CreateTransliterationRewriter());
543542
544543 Segments segments;
558557 }
559558
560559 TEST_F(TransliterationRewriterTest, NoKeyWithComposerTest) {
561 scoped_ptr<TransliterationRewriter> t13n_rewriter(
560 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
562561 CreateTransliterationRewriter());
563562
564563 composer::Table table;
585584 }
586585
587586 TEST_F(TransliterationRewriterTest, NoRewriteTest) {
588 scoped_ptr<TransliterationRewriter> t13n_rewriter(
587 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
589588 CreateTransliterationRewriter());
590589
591590 composer::Table table;
602601 }
603602
604603 TEST_F(TransliterationRewriterTest, NormalizedTransliterations) {
605 scoped_ptr<TransliterationRewriter> t13n_rewriter(
604 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
606605 CreateTransliterationRewriter());
607606
608607 composer::Table table;
632631
633632 TEST_F(TransliterationRewriterTest, MobileEnvironmentTest) {
634633 commands::Request input;
635 scoped_ptr<TransliterationRewriter> rewriter(CreateTransliterationRewriter());
636
634 std::unique_ptr<TransliterationRewriter> rewriter(
635 CreateTransliterationRewriter());
637636 {
638637 input.set_mixed_conversion(true);
639638 const ConversionRequest request(NULL, &input);
648647 }
649648
650649 TEST_F(TransliterationRewriterTest, MobileT13nTestWith12KeysHiragana) {
651 scoped_ptr<TransliterationRewriter> t13n_rewriter(
650 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
652651 CreateTransliterationRewriter());
653652
654653 commands::Request request;
719718 }
720719
721720 TEST_F(TransliterationRewriterTest, MobileT13nTestWith12KeysToNumber) {
722 scoped_ptr<TransliterationRewriter> t13n_rewriter(
721 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
723722 CreateTransliterationRewriter());
724723
725724 commands::Request request;
791790 }
792791
793792 TEST_F(TransliterationRewriterTest, MobileT13nTestWith12KeysFlick) {
794 scoped_ptr<TransliterationRewriter> t13n_rewriter(
793 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
795794 CreateTransliterationRewriter());
796795
797796 commands::Request request;
862861 }
863862
864863 TEST_F(TransliterationRewriterTest, MobileT13nTestWithQwertyHiragana) {
865 scoped_ptr<TransliterationRewriter> t13n_rewriter(
864 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
866865 CreateTransliterationRewriter());
867866
868867 commands::Request client_request;
915914 }
916915
917916 TEST_F(TransliterationRewriterTest, MobileT13nTestWithGodan) {
918 scoped_ptr<TransliterationRewriter> t13n_rewriter(
917 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
919918 CreateTransliterationRewriter());
920919
921920 commands::Request request;
984983 }
985984
986985 TEST_F(TransliterationRewriterTest, MobileT13nTest_ValidateGodanT13nTable) {
987 scoped_ptr<TransliterationRewriter> t13n_rewriter(
986 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
988987 CreateTransliterationRewriter());
989988
990989 commands::Request request;
10611060 }
10621061
10631062 TEST_F(TransliterationRewriterTest, T13nOnSuggestion) {
1064 scoped_ptr<TransliterationRewriter> t13n_rewriter(
1063 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
10651064 CreateTransliterationRewriter());
10661065
10671066 commands::Request client_request;
10931092 }
10941093
10951094 TEST_F(TransliterationRewriterTest, T13nOnPartialSuggestion) {
1096 scoped_ptr<TransliterationRewriter> t13n_rewriter(
1095 std::unique_ptr<TransliterationRewriter> t13n_rewriter(
10971096 CreateTransliterationRewriter());
10981097
10991098 commands::Request client_request;
3030
3131 #include <cstddef>
3232 #include <cstdlib>
33 #include <memory>
3334 #include <string>
3435
3536 #include "base/port.h"
4344 #include "engine/mock_data_engine_factory.h"
4445 #include "protocol/commands.pb.h"
4546 #include "protocol/config.pb.h"
47 #include "testing/base/public/googletest.h"
4648 #include "testing/base/public/gunit.h"
47
48 DECLARE_string(test_tmpdir);
4949
5050 namespace mozc {
5151 namespace {
9090 engine_.reset(MockDataEngineFactory::Create());
9191 }
9292
93 scoped_ptr<EngineInterface> engine_;
93 std::unique_ptr<EngineInterface> engine_;
9494 const commands::Request &default_request() const {
9595 return default_request_;
9696 }
2828
2929 #include "rewriter/usage_rewriter.h"
3030
31 #include <memory>
3132 #include <string>
3233
3334 #include "base/system_util.h"
9596 user_dictionary_.get());
9697 }
9798
98 scoped_ptr<SuppressionDictionary> suppression_dictionary_;
99 scoped_ptr<UserDictionary> user_dictionary_;
100 scoped_ptr<testing::MockDataManager> data_manager_;
99 std::unique_ptr<SuppressionDictionary> suppression_dictionary_;
100 std::unique_ptr<UserDictionary> user_dictionary_;
101 std::unique_ptr<testing::MockDataManager> data_manager_;
101102 };
102103
103104 TEST_F(UsageRewriterTest, CapabilityTest) {
104 scoped_ptr<UsageRewriter> rewriter(CreateUsageRewriter());
105 std::unique_ptr<UsageRewriter> rewriter(CreateUsageRewriter());
105106 const ConversionRequest request;
106107 EXPECT_EQ(RewriterInterface::CONVERSION |
107108 RewriterInterface::PREDICTION,
110111
111112 TEST_F(UsageRewriterTest, ConjugationTest) {
112113 Segments segments;
113 scoped_ptr<UsageRewriter> rewriter(CreateUsageRewriter());
114 std::unique_ptr<UsageRewriter> rewriter(CreateUsageRewriter());
114115 Segment *seg;
115116
116117 segments.Clear();
141142
142143 TEST_F(UsageRewriterTest, SingleSegmentSingleCandidateTest) {
143144 Segments segments;
144 scoped_ptr<UsageRewriter> rewriter(CreateUsageRewriter());
145 std::unique_ptr<UsageRewriter> rewriter(CreateUsageRewriter());
145146 Segment *seg;
146147 const ConversionRequest request;
147148
176177
177178 TEST_F(UsageRewriterTest, ConfigTest) {
178179 Segments segments;
179 scoped_ptr<UsageRewriter> rewriter(CreateUsageRewriter());
180 std::unique_ptr<UsageRewriter> rewriter(CreateUsageRewriter());
180181 Segment *seg;
181182 const ConversionRequest request;
182183
235236
236237 TEST_F(UsageRewriterTest, SingleSegmentMultiCandidatesTest) {
237238 Segments segments;
238 scoped_ptr<UsageRewriter> rewriter(CreateUsageRewriter());
239 std::unique_ptr<UsageRewriter> rewriter(CreateUsageRewriter());
239240 Segment *seg;
240241 const ConversionRequest request;
241242
330331
331332 TEST_F(UsageRewriterTest, MultiSegmentsTest) {
332333 Segments segments;
333 scoped_ptr<UsageRewriter> rewriter(CreateUsageRewriter());
334 std::unique_ptr<UsageRewriter> rewriter(CreateUsageRewriter());
334335 Segment *seg;
335336 const ConversionRequest request;
336337
389390
390391 TEST_F(UsageRewriterTest, SameUsageTest) {
391392 Segments segments;
392 scoped_ptr<UsageRewriter> rewriter(CreateUsageRewriter());
393 std::unique_ptr<UsageRewriter> rewriter(CreateUsageRewriter());
393394 Segment *seg;
394395 const ConversionRequest request;
395396
512513 "\xE3\x82\xA2\xE3\x83\xAB\xE3\x83\x91\xE3\x82\xAB", seg);
513514
514515 const ConversionRequest request;
515 scoped_ptr<UsageRewriter> rewriter(CreateUsageRewriter());
516 std::unique_ptr<UsageRewriter> rewriter(CreateUsageRewriter());
516517 EXPECT_TRUE(rewriter->Rewrite(request, &segments));
517518
518519 // Result of ("うま", "Horse"). No comment is expected.
2929 #ifndef MOZC_REWRITER_USER_BOUNDARY_HISTORY_REWRITER_H_
3030 #define MOZC_REWRITER_USER_BOUNDARY_HISTORY_REWRITER_H_
3131
32 #include <memory>
33 #include <string>
3234 #include <vector>
33 #include <string>
3435
3536 #include "base/port.h"
36 #include "base/scoped_ptr.h"
3737 #include "rewriter/rewriter_interface.h"
3838
3939 namespace mozc {
6767 int type) const;
6868
6969 const ConverterInterface *parent_converter_;
70 scoped_ptr<mozc::storage::LRUStorage> storage_;
70 std::unique_ptr<mozc::storage::LRUStorage> storage_;
7171 };
7272
7373 } // namespace mozc
2929 #ifndef MOZC_REWRITER_USER_SEGMENT_HISTORY_REWRITER_H_
3030 #define MOZC_REWRITER_USER_SEGMENT_HISTORY_REWRITER_H_
3131
32 #include <memory>
3233 #include <string>
3334 #include <vector>
3435
9596 Segment *segment) const;
9697
9798
98 scoped_ptr<storage::LRUStorage> storage_;
99 std::unique_ptr<storage::LRUStorage> storage_;
99100 const dictionary::POSMatcher *pos_matcher_;
100101 const dictionary::PosGroup *pos_group_;
101102 };
2828
2929 #include "rewriter/user_segment_history_rewriter.h"
3030
31 #include <memory>
3132 #include <string>
3233
3334 #include "base/clock.h"
5051 #include "testing/base/public/googletest.h"
5152 #include "testing/base/public/gunit.h"
5253
53 DECLARE_string(test_tmpdir);
54
5554 using mozc::config::CharacterFormManager;
5655 using mozc::config::Config;
5756 using mozc::config::ConfigHandler;
173172 virtual void TearDown() {
174173 Clock::SetClockForUnitTest(NULL);
175174
176 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
175 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
177176 CreateUserSegmentHistoryRewriter());
178177 rewriter->Clear();
179178 // reset config of test_tmpdir.
198197 private:
199198 const testing::MockDataManager mock_data_manager_;
200199 const POSMatcher *pos_matcher_;
201 scoped_ptr<const PosGroup> pos_group_;
200 std::unique_ptr<const PosGroup> pos_group_;
202201 DISALLOW_COPY_AND_ASSIGN(UserSegmentHistoryRewriterTest);
203202 };
204203
205204 TEST_F(UserSegmentHistoryRewriterTest, CreateFile) {
206 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
205 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
207206 CreateUserSegmentHistoryRewriter());
208207 const string history_file = FileUtil::JoinPath(FLAGS_test_tmpdir,
209208 "/segment.db");
214213 SetLearningLevel(Config::DEFAULT_HISTORY);
215214 SetIncognito(false);
216215 Segments segments;
217 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
216 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
218217 CreateUserSegmentHistoryRewriter());
219218 segments.Clear();
220219 const ConversionRequest default_request;
225224 TEST_F(UserSegmentHistoryRewriterTest, IncognitoModeTest) {
226225 SetLearningLevel(Config::DEFAULT_HISTORY);
227226 Segments segments;
228 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
227 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
229228 CreateUserSegmentHistoryRewriter());
230229 const ConversionRequest request;
231230
268267 TEST_F(UserSegmentHistoryRewriterTest, ConfigTest) {
269268 SetIncognito(false);
270269 Segments segments;
271 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
270 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
272271 CreateUserSegmentHistoryRewriter());
273272 const ConversionRequest request;
274273
317316 SetIncognito(false);
318317 SetLearningLevel(Config::DEFAULT_HISTORY);
319318 Segments segments;
320 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
319 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
321320 CreateUserSegmentHistoryRewriter());
322321 const ConversionRequest request;
323322
366365 TEST_F(UserSegmentHistoryRewriterTest, BasicTest) {
367366 SetLearningLevel(Config::DEFAULT_HISTORY);
368367 Segments segments;
369 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
368 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
370369 CreateUserSegmentHistoryRewriter());
371370 const ConversionRequest request;
372371
464463 TEST_F(UserSegmentHistoryRewriterTest, SequenceTest) {
465464 SetLearningLevel(Config::DEFAULT_HISTORY);
466465 Segments segments;
467 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
466 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
468467 CreateUserSegmentHistoryRewriter());
469468 const ConversionRequest request;
470469
568567 TEST_F(UserSegmentHistoryRewriterTest, DupTest) {
569568 SetLearningLevel(Config::DEFAULT_HISTORY);
570569 Segments segments;
571 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
570 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
572571 CreateUserSegmentHistoryRewriter());
573572 const ConversionRequest request;
574573
628627 TEST_F(UserSegmentHistoryRewriterTest, LearningType) {
629628 SetLearningLevel(Config::DEFAULT_HISTORY);
630629 Segments segments;
631 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
630 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
632631 CreateUserSegmentHistoryRewriter());
633632 const ConversionRequest request;
634633
684683 TEST_F(UserSegmentHistoryRewriterTest, ContextSensitive) {
685684 SetLearningLevel(Config::DEFAULT_HISTORY);
686685 Segments segments;
687 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
686 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
688687 CreateUserSegmentHistoryRewriter());
689688 const ConversionRequest request;
690689
739738 TEST_F(UserSegmentHistoryRewriterTest, ContentValueLearning) {
740739 SetLearningLevel(Config::DEFAULT_HISTORY);
741740 Segments segments;
742 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
741 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
743742 CreateUserSegmentHistoryRewriter());
744743 const ConversionRequest request;
745744
860859 TEST_F(UserSegmentHistoryRewriterTest, ReplaceableTest) {
861860 SetLearningLevel(Config::DEFAULT_HISTORY);
862861 Segments segments;
863 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
862 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
864863 CreateUserSegmentHistoryRewriter());
865864 const ConversionRequest request;
866865
990989 TEST_F(UserSegmentHistoryRewriterTest, NotReplaceableForDifferentId) {
991990 SetLearningLevel(Config::DEFAULT_HISTORY);
992991 Segments segments;
993 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
992 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
994993 CreateUserSegmentHistoryRewriter());
995994 const ConversionRequest request;
996995
10221021 TEST_F(UserSegmentHistoryRewriterTest, ReplaceableForSameId) {
10231022 SetLearningLevel(Config::DEFAULT_HISTORY);
10241023 Segments segments;
1025 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
1024 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
10261025 CreateUserSegmentHistoryRewriter());
10271026 const ConversionRequest request;
10281027
10541053 TEST_F(UserSegmentHistoryRewriterTest, ReplaceableT13NTest) {
10551054 SetLearningLevel(Config::DEFAULT_HISTORY);
10561055 Segments segments;
1057 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
1056 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
10581057 CreateUserSegmentHistoryRewriter());
10591058 const ConversionRequest request;
10601059
10871086 TEST_F(UserSegmentHistoryRewriterTest, LeftRightNumber) {
10881087 SetLearningLevel(Config::DEFAULT_HISTORY);
10891088 Segments segments;
1090 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
1089 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
10911090 CreateUserSegmentHistoryRewriter());
10921091 const ConversionRequest request;
10931092
11491148 TEST_F(UserSegmentHistoryRewriterTest, BacketMatching) {
11501149 SetLearningLevel(Config::DEFAULT_HISTORY);
11511150 Segments segments;
1152 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
1151 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
11531152 CreateUserSegmentHistoryRewriter());
11541153 const ConversionRequest request;
11551154
11881187 TEST_F(UserSegmentHistoryRewriterTest, MultipleLearning) {
11891188 SetLearningLevel(Config::DEFAULT_HISTORY);
11901189 Segments segments;
1191 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
1190 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
11921191 CreateUserSegmentHistoryRewriter());
11931192 const ConversionRequest request;
11941193
12471246 TEST_F(UserSegmentHistoryRewriterTest, NumberSpecial) {
12481247 SetLearningLevel(Config::DEFAULT_HISTORY);
12491248 Segments segments;
1250 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
1251 CreateUserSegmentHistoryRewriter());
1252 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
1249 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
1250 CreateUserSegmentHistoryRewriter());
1251 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
12531252 const ConversionRequest request;
12541253
12551254 rewriter->Clear();
12971296 SetLearningLevel(Config::DEFAULT_HISTORY);
12981297 SetNumberForm(Config::HALF_WIDTH);
12991298 Segments segments;
1300 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
1301 CreateUserSegmentHistoryRewriter());
1302 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
1299 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
1300 CreateUserSegmentHistoryRewriter());
1301 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
13031302 const ConversionRequest request;
13041303
13051304 rewriter->Clear();
13501349 SetLearningLevel(Config::DEFAULT_HISTORY);
13511350 SetNumberForm(Config::FULL_WIDTH);
13521351 Segments segments;
1353 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
1354 CreateUserSegmentHistoryRewriter());
1355 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
1352 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
1353 CreateUserSegmentHistoryRewriter());
1354 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
13561355 const ConversionRequest request;
13571356
13581357 rewriter->Clear();
14001399 SetLearningLevel(Config::DEFAULT_HISTORY);
14011400 SetNumberForm(Config::HALF_WIDTH);
14021401 Segments segments;
1403 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
1404 CreateUserSegmentHistoryRewriter());
1405 scoped_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
1402 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
1403 CreateUserSegmentHistoryRewriter());
1404 std::unique_ptr<NumberRewriter> number_rewriter(CreateNumberRewriter());
14061405 const ConversionRequest request;
14071406
14081407 rewriter->Clear();
14621461 TEST_F(UserSegmentHistoryRewriterTest, Regression2459519) {
14631462 SetLearningLevel(Config::DEFAULT_HISTORY);
14641463 Segments segments;
1465 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
1464 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
14661465 CreateUserSegmentHistoryRewriter());
14671466 const ConversionRequest request;
14681467
15191518 TEST_F(UserSegmentHistoryRewriterTest, Regression2459520) {
15201519 SetLearningLevel(Config::DEFAULT_HISTORY);
15211520 Segments segments;
1522 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
1521 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
15231522 CreateUserSegmentHistoryRewriter());
15241523 const ConversionRequest request;
15251524
15481547 TEST_F(UserSegmentHistoryRewriterTest, PuntuationsTest) {
15491548 SetLearningLevel(Config::DEFAULT_HISTORY);
15501549 Segments segments;
1551 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
1550 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
15521551 CreateUserSegmentHistoryRewriter());
15531552 const ConversionRequest request;
15541553
15851584 TEST_F(UserSegmentHistoryRewriterTest, Regression3264619) {
15861585 SetLearningLevel(Config::DEFAULT_HISTORY);
15871586 Segments segments;
1588 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
1587 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
15891588 CreateUserSegmentHistoryRewriter());
15901589 const ConversionRequest request;
15911590
16081607 TEST_F(UserSegmentHistoryRewriterTest, RandomTest) {
16091608 SetLearningLevel(Config::DEFAULT_HISTORY);
16101609 Segments segments;
1611 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
1610 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
16121611 CreateUserSegmentHistoryRewriter());
16131612 const ConversionRequest request;
16141613
16401639 TEST_F(UserSegmentHistoryRewriterTest, AnnotationAfterLearning) {
16411640 SetLearningLevel(Config::DEFAULT_HISTORY);
16421641 Segments segments;
1643 scoped_ptr<UserSegmentHistoryRewriter> rewriter(
1642 std::unique_ptr<UserSegmentHistoryRewriter> rewriter(
16441643 CreateUserSegmentHistoryRewriter());
16451644 const ConversionRequest request;
16461645
2828
2929 #include "rewriter/variants_rewriter.h"
3030
31 #include <memory>
3132 #include <string>
3233
3334 #include "base/logging.h"
4142 #include "data_manager/user_pos_manager.h"
4243 #include "dictionary/pos_matcher.h"
4344 #include "protocol/config.pb.h"
45 #include "testing/base/public/googletest.h"
4446 #include "testing/base/public/gunit.h"
45
46 DECLARE_string(test_tmpdir);
4747
4848 using mozc::config::CharacterFormManager;
4949 using mozc::config::Config;
108108 };
109109
110110 TEST_F(VariantsRewriterTest, RewriteTest) {
111 scoped_ptr<VariantsRewriter> rewriter(CreateVariantsRewriter());
111 std::unique_ptr<VariantsRewriter> rewriter(CreateVariantsRewriter());
112112 Segments segments;
113113 const ConversionRequest request;
114114
248248 }
249249
250250 TEST_F(VariantsRewriterTest, RewriteTestManyCandidates) {
251 scoped_ptr<VariantsRewriter> rewriter(CreateVariantsRewriter());
251 std::unique_ptr<VariantsRewriter> rewriter(CreateVariantsRewriter());
252252 Segments segments;
253253 const ConversionRequest request;
254254 Segment *seg = segments.push_back_segment();
653653 TEST_F(VariantsRewriterTest, RewriteForConversion) {
654654 CharacterFormManager *character_form_manager =
655655 CharacterFormManager::GetCharacterFormManager();
656 scoped_ptr<VariantsRewriter> rewriter(CreateVariantsRewriter());
656 std::unique_ptr<VariantsRewriter> rewriter(CreateVariantsRewriter());
657657 const ConversionRequest request;
658658 {
659659 Segments segments;
711711 TEST_F(VariantsRewriterTest, RewriteForPrediction) {
712712 CharacterFormManager *character_form_manager =
713713 CharacterFormManager::GetCharacterFormManager();
714 scoped_ptr<VariantsRewriter> rewriter(CreateVariantsRewriter());
714 std::unique_ptr<VariantsRewriter> rewriter(CreateVariantsRewriter());
715715 const ConversionRequest request;
716716 {
717717 Segments segments;
751751 TEST_F(VariantsRewriterTest, RewriteForSuggestion) {
752752 CharacterFormManager *character_form_manager =
753753 CharacterFormManager::GetCharacterFormManager();
754 scoped_ptr<VariantsRewriter> rewriter(CreateVariantsRewriter());
754 std::unique_ptr<VariantsRewriter> rewriter(CreateVariantsRewriter());
755755 const ConversionRequest request;
756756 {
757757 Segments segments;
826826 }
827827
828828 TEST_F(VariantsRewriterTest, Capability) {
829 scoped_ptr<VariantsRewriter> rewriter(CreateVariantsRewriter());
829 std::unique_ptr<VariantsRewriter> rewriter(CreateVariantsRewriter());
830830 const ConversionRequest request;
831831 EXPECT_EQ(RewriterInterface::ALL, rewriter->capability(request));
832832 }
2828
2929 #include "rewriter/zipcode_rewriter.h"
3030
31 #include <memory>
3132 #include <string>
3233
3334 #include "base/logging.h"
99100 virtual void SetUp() {
100101 #ifdef MOZC_USE_PACKED_DICTIONARY
101102 // Registers mocked PackedDataManager.
102 scoped_ptr<packed::PackedDataManager>
103 std::unique_ptr<packed::PackedDataManager>
103104 data_manager(new packed::PackedDataManager());
104105 CHECK(data_manager->Init(string(kPackedSystemDictionary_data,
105106 kPackedSystemDictionary_size)));
131132 };
132133
133134 TEST_F(ZipcodeRewriterTest, BasicTest) {
134 scoped_ptr<ZipcodeRewriter> zipcode_rewriter(CreateZipcodeRewriter());
135 std::unique_ptr<ZipcodeRewriter> zipcode_rewriter(CreateZipcodeRewriter());
135136
136137 const string kZipcode = "107-0052";
137138 const string kAddress =
2929 #include "session/generic_storage_manager.h"
3030
3131 #include <cstring>
32 #include <memory>
3233 #include <string>
3334 #include <vector>
3435
3637 #include "base/logging.h"
3738 #include "base/mutex.h"
3839 #include "base/port.h"
39 #include "base/scoped_ptr.h"
4040 #include "base/singleton.h"
4141 #include "storage/lru_storage.h"
4242
143143 // We already have prepared storage.
144144 return true;
145145 }
146 scoped_ptr<LRUStorage> new_storage;
146 std::unique_ptr<LRUStorage> new_storage;
147147 new_storage.reset(new LRUStorage());
148148 const string &filename =
149149 ConfigFileStream::GetFileName(file_name_);
2929 #ifndef MOZC_SESSION_GENERIC_STORAGE_MANAGER_H_
3030 #define MOZC_SESSION_GENERIC_STORAGE_MANAGER_H_
3131
32 #include <memory>
33
3234 #include "base/port.h"
33 #include "base/scoped_ptr.h"
3435 #include "protocol/commands.pb.h"
3536
3637 namespace mozc {
118119
119120 private:
120121 friend class GenericLruStorageProxy;
121 scoped_ptr<mozc::storage::LRUStorage> lru_storage_;
122 std::unique_ptr<mozc::storage::LRUStorage> lru_storage_;
122123 const string file_name_;
123124 const size_t value_size_;
124125 const size_t size_;
125126 const uint32 seed_;
126127 // Temporary buffer to insert a value into this storage.
127 scoped_ptr<char[]> value_buffer_;
128 std::unique_ptr<char[]> value_buffer_;
128129
129130 DISALLOW_COPY_AND_ASSIGN(GenericLruStorage);
130131 };
3232 #define MOZC_SESSION_INTERNAL_CANDIDATE_LIST_H_
3333
3434 #include <map>
35 #include <memory>
3536 #include <string>
3637 #include <vector>
3738
3839 #include "base/port.h"
39 #include "base/scoped_ptr.h"
4040
4141 namespace mozc {
4242
155155 size_t focused_index_;
156156 bool focused_;
157157 string name_;
158 scoped_ptr<ObjectPool<Candidate> > candidate_pool_;
159 scoped_ptr<vector<Candidate *> > candidates_;
158 std::unique_ptr<ObjectPool<Candidate>> candidate_pool_;
159 std::unique_ptr<vector<Candidate *>> candidates_;
160160 int next_available_id_;
161161
162162 // Map marking added candidate values. The keys are fingerprints of
163163 // the candidate values, the values of the map are candidate ids.
164 scoped_ptr<map<uint64, int> > added_candidates_;
164 std::unique_ptr<map<uint64, int>> added_candidates_;
165165
166166 // Id-to-id map. The key and value ids have the same candidate
167167 // value. (ex. {id:0, value:"kanji"} and {id:-5, value:"kanji"}).
168168 // The key ids are not directly stored in candidates, so accessing
169169 // these ids, they should be converted with this map.
170 scoped_ptr<map<int, int> > alternative_ids_;
170 std::unique_ptr<map<int, int>> alternative_ids_;
171171
172172 DISALLOW_COPY_AND_ASSIGN(CandidateList);
173173 };
174174
175175 } // namespace session
176176 } // namespace mozc
177
177178 #endif // MOZC_SESSION_INTERNAL_CANDIDATE_LIST_H_
2828
2929 #include "session/internal/candidate_list.h"
3030
31 #include <memory>
3132 #include <string>
3233
33 #include "base/scoped_ptr.h"
3434 #include "testing/base/public/gunit.h"
3535
3636 namespace mozc {
7575 sub_sub_list_2_1_->AddCandidate(212, "212"); // subsub212
7676 }
7777
78 scoped_ptr<CandidateList> main_list_;
78 std::unique_ptr<CandidateList> main_list_;
7979 // sub_list_1_ will be initialized on the fly.
8080 CandidateList *sub_list_1_;
81 scoped_ptr<CandidateList> sub_list_2_;
82 scoped_ptr<CandidateList> sub_sub_list_2_1_;
81 std::unique_ptr<CandidateList> sub_list_2_;
82 std::unique_ptr<CandidateList> sub_sub_list_2_1_;
8383 };
8484
8585 TEST_F(CandidateListTest, MoveToId) {
3232 #ifndef MOZC_SESSION_INTERNAL_IME_CONTEXT_H_
3333 #define MOZC_SESSION_INTERNAL_IME_CONTEXT_H_
3434
35 #include <memory>
36
3537 #include "base/port.h"
36 #include "base/scoped_ptr.h"
3738 #include "protocol/commands.pb.h"
3839
3940 namespace mozc {
156157 uint64 create_time_;
157158 uint64 last_command_time_;
158159
159 scoped_ptr<composer::Composer> composer_;
160 std::unique_ptr<composer::Composer> composer_;
160161
161 scoped_ptr<SessionConverterInterface> converter_;
162 std::unique_ptr<SessionConverterInterface> converter_;
162163
163164 State state_;
164165
186187
187188 } // namespace session
188189 } // namespace mozc
190
189191 #endif // MOZC_SESSION_INTERNAL_IME_CONTEXT_H_
2828
2929 #include "session/internal/ime_context.h"
3030
31 #include <memory>
3132 #include <string>
3233
33 #include "base/scoped_ptr.h"
3434 #include "composer/composer.h"
3535 #include "composer/table.h"
3636 #include "converter/converter_interface.h"
7878 EXPECT_EQ(composer, &context.composer());
7979 EXPECT_EQ(composer, context.mutable_composer());
8080
81 scoped_ptr<ConverterMock> converter_mock(new ConverterMock);
81 std::unique_ptr<ConverterMock> converter_mock(new ConverterMock);
8282 SessionConverter *converter = new SessionConverter(
8383 converter_mock.get(), &default_request);
8484 context.set_converter(converter);
119119 // "な"
120120 table.AddRule("na", "\xE3\x81\xAA", "");
121121
122 scoped_ptr<MockConverterEngine> engine(new MockConverterEngine);
122 std::unique_ptr<MockConverterEngine> engine(new MockConverterEngine);
123123
124124 Segments segments;
125125 Segment *segment = segments.add_segment();
3030
3131 #include "session/internal/keymap.h"
3232
33 #include <memory>
3334 #include <set>
3435 #include <sstream>
3536 #include <string>
3940 #include "base/file_stream.h"
4041 #include "base/logging.h"
4142 #include "base/port.h"
42 #include "base/scoped_ptr.h"
4343 #include "base/util.h"
4444 #include "composer/key_event_util.h"
4545 #include "composer/key_parser.h"
159159 }
160160
161161 bool KeyMapManager::LoadFile(const char *filename) {
162 scoped_ptr<istream> ifs(ConfigFileStream::LegacyOpen(filename));
162 std::unique_ptr<istream> ifs(ConfigFileStream::LegacyOpen(filename));
163163 if (ifs.get() == NULL) {
164164 LOG(WARNING) << "cannot load keymap table: " << filename;
165165 return false;
2828
2929 // Keymap utils of Mozc interface.
3030
31 #include <memory>
3132 #include <sstream>
3233 #include <vector>
34
3335 #include "base/config_file_stream.h"
34 #include "base/scoped_ptr.h"
3536 #include "base/system_util.h"
3637 #include "composer/key_parser.h"
3738 #include "config/config_handler.h"
4041 #include "session/internal/keymap-inl.h"
4142 #include "session/internal/keymap.h"
4243 #include "session/internal/keymap_factory.h"
44 #include "testing/base/public/googletest.h"
4345 #include "testing/base/public/gunit.h"
44
45 DECLARE_string(test_tmpdir);
4646
4747 namespace mozc {
4848 namespace keymap {
323323 TEST_F(KeyMapTest, LoadStreamWithErrors) {
324324 KeyMapManager manager;
325325 vector<string> errors;
326 scoped_ptr<istream> is(ConfigFileStream::LegacyOpen("system://atok.tsv"));
326 std::unique_ptr<istream> is(
327 ConfigFileStream::LegacyOpen("system://atok.tsv"));
327328 EXPECT_TRUE(manager.LoadStreamWithErrors(is.get(), &errors));
328329 EXPECT_TRUE(errors.empty());
329330
2828
2929 #include "session/key_info_util.h"
3030
31 #include <memory>
3132 #include <sstream>
3233 #include <string>
3334 #include <vector>
3536 #include "base/config_file_stream.h"
3637 #include "base/logging.h"
3738 #include "base/port.h"
38 #include "base/scoped_ptr.h"
3939 #include "base/util.h"
4040 #include "composer/key_parser.h"
4141 #include "config/config_handler.h"
8989
9090 vector<KeyInformation> ExtractSortedDirectModeKeysFromFile(
9191 const string &filename) {
92 scoped_ptr<istream> ifs(ConfigFileStream::LegacyOpen(filename));
92 std::unique_ptr<istream> ifs(ConfigFileStream::LegacyOpen(filename));
9393 if (ifs.get() == NULL) {
9494 DLOG(FATAL) << "could not open file: " << filename;
9595 return vector<KeyInformation>();
3030
3131 #include "session/session.h"
3232
33 #include <memory>
3334 #include <string>
3435 #include <vector>
3536
15451546 // To achieve this, we create a temporary composer object to which the
15461547 // new input mode will be stored when |input| has a new input mode.
15471548 const composer::Composer* target_composer = &context_->composer();
1548 scoped_ptr<composer::Composer> temporary_composer;
1549 std::unique_ptr<composer::Composer> temporary_composer;
15491550 if (input.has_key() && input.key().has_mode()) {
15501551 // Allocate an object only when it is necessary.
15511552 temporary_composer.reset(new composer::Composer(NULL, NULL));
3131 #ifndef MOZC_SESSION_SESSION_H_
3232 #define MOZC_SESSION_SESSION_H_
3333
34 #include <memory>
3435 #include <string>
3536
3637 #include "base/coordinates.h"
3738 #include "base/port.h"
38 #include "base/scoped_ptr.h"
3939 #include "composer/composer.h"
4040 #include "session/session_interface.h"
4141 #include "transliteration/transliteration.h"
286286 // history, user dictionary, etc.
287287 mozc::EngineInterface *engine_;
288288
289 scoped_ptr<ImeContext> context_;
290 scoped_ptr<ImeContext> prev_context_;
289 std::unique_ptr<ImeContext> context_;
290 std::unique_ptr<ImeContext> prev_context_;
291291
292292 void InitContext(ImeContext *context) const;
293293
2727 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2828
2929 #include <iostream>
30 #include <memory>
3031 #include <string>
3132
3233 #include "base/file_stream.h"
3435 #include "base/flags.h"
3536 #include "base/logging.h"
3637 #include "base/port.h"
37 #include "base/scoped_ptr.h"
3838 #include "base/system_util.h"
3939 #include "base/util.h"
4040 #include "composer/key_parser.h"
4848 DEFINE_string(profile_dir, "", "Profile dir");
4949
5050 namespace mozc {
51
5152 void Loop(istream *input, ostream *output) {
52 scoped_ptr<EngineInterface> engine(EngineFactory::Create());
53 scoped_ptr<session::Session> session(new session::Session(engine.get()));
53 std::unique_ptr<EngineInterface> engine(EngineFactory::Create());
54 std::unique_ptr<session::Session> session(new session::Session(engine.get()));
5455
5556 commands::Command command;
5657 string line;
8586
8687 int main(int argc, char **argv) {
8788 InitGoogle(argv[0], &argc, &argv, false);
88 scoped_ptr<mozc::InputFileStream> input_file;
89 scoped_ptr<mozc::OutputFileStream> output_file;
89 std::unique_ptr<mozc::InputFileStream> input_file;
90 std::unique_ptr<mozc::OutputFileStream> output_file;
9091 istream *input = NULL;
9192 ostream *output = NULL;
9293
3131 #ifndef MOZC_SESSION_SESSION_CONVERTER_H_
3232 #define MOZC_SESSION_SESSION_CONVERTER_H_
3333
34 #include <memory>
3435 #include <string>
3536 #include <vector>
3637
3738 #include "base/port.h"
38 #include "base/scoped_ptr.h"
3939 #include "session/session_converter_interface.h"
4040
4141 namespace mozc {
354354 SessionConverterInterface::State state_;
355355
356356 const ConverterInterface *converter_;
357 scoped_ptr<Segments> segments_;
357 std::unique_ptr<Segments> segments_;
358358 size_t segment_index_;
359359
360360 // Previous suggestions to be merged with the current predictions.
366366 // Preferences for user's operation.
367367 OperationPreferences operation_preferences_;
368368
369 scoped_ptr<commands::Result> result_;
370
371 scoped_ptr<CandidateList> candidate_list_;
369 std::unique_ptr<commands::Result> result_;
370
371 std::unique_ptr<CandidateList> candidate_list_;
372372 bool candidate_list_visible_;
373373
374374 const commands::Request *request_;
2828
2929 #include "session/session_converter.h"
3030
31 #include <memory>
3132 #include <string>
3233
3334 #include "base/clock.h"
106107 const string kRomajiHiraganaTable = "system://romanji-hiragana.tsv";
107108 const commands::Request default_request;
108109
109 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
110 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
110111 ConverterInterface* converter = engine->GetConverter();
111112 SessionConverter sconverter(converter, &default_request);
112113 composer::Table table;
3434
3535 #include "session/session_converter.h"
3636
37 #include <memory>
3738 #include <set>
3839 #include <string>
3940 #include <vector>
5960 #include "transliteration/transliteration.h"
6061 #include "usage_stats/usage_stats.h"
6162 #include "usage_stats/usage_stats_testing_util.h"
62
63 DECLARE_string(test_tmpdir);
6463
6564 namespace mozc {
6665 namespace session {
407406 ->mutable_candidate(canidate_index)->command = command;
408407 }
409408
410 scoped_ptr<ConverterMock> convertermock_;
411
412 scoped_ptr<composer::Composer> composer_;
413 scoped_ptr<composer::Table> table_;
414 scoped_ptr<Request> mobile_request_;
409 std::unique_ptr<ConverterMock> convertermock_;
410
411 std::unique_ptr<composer::Composer> composer_;
412 std::unique_ptr<composer::Table> table_;
413 std::unique_ptr<Request> mobile_request_;
415414 const Request default_request_;
416415 mozc::usage_stats::scoped_usage_stats_enabler usage_stats_enabler_;
417416 };
17381737
17391738 // FinishConversion is expected to return empty Segments.
17401739 convertermock_->SetFinishConversion(
1741 scoped_ptr<Segments>(new Segments).get(), true);
1740 std::unique_ptr<Segments>(new Segments).get(), true);
17421741
17431742 size_t committed_key_size = 0;
17441743 converter.CommitSuggestionByIndex(1, *composer_.get(),
18031802
18041803 // FinishConversion is expected to return empty Segments.
18051804 convertermock_->SetFinishConversion(
1806 scoped_ptr<Segments>(new Segments).get(), true);
1805 std::unique_ptr<Segments>(new Segments).get(), true);
18071806
18081807 const int kCandidateIndex = 1;
18091808 size_t committed_key_size = 0;
28552854
28562855 { // validation
28572856 // Copy and validate
2858 scoped_ptr<SessionConverter> dest(src.Clone());
2857 std::unique_ptr<SessionConverter> dest(src.Clone());
28592858 ASSERT_TRUE(dest.get() != NULL);
28602859 ExpectSameSessionConverter(src, *dest);
28612860
3232 #define MOZC_SESSION_SESSION_HANDLER_H_
3333
3434 #include <map>
35 #include <memory>
3536 #include <string>
3637
3738 #include "base/port.h"
38 #include "base/scoped_ptr.h"
3939 #include "composer/table.h"
4040 #include "session/common.h"
4141 #include "session/session_handler_interface.h"
133133 SessionID CreateNewSessionID();
134134 bool DeleteSessionID(SessionID id);
135135
136 scoped_ptr<SessionMap> session_map_;
136 std::unique_ptr<SessionMap> session_map_;
137137 #ifndef MOZC_DISABLE_SESSION_WATCHDOG
138 scoped_ptr<SessionWatchDog> session_watch_dog_;
138 std::unique_ptr<SessionWatchDog> session_watch_dog_;
139139 #else // MOZC_DISABLE_SESSION_WATCHDOG
140140 // Session watch dog is not aviable from android mozc and nacl mozc for now.
141141 // TODO(kkojima): Remove this guard after
148148 uint64 last_create_session_time_;
149149
150150 EngineInterface *engine_;
151 scoped_ptr<session::SessionObserverHandler> observer_handler_;
152 scoped_ptr<Stopwatch> stopwatch_;
153 scoped_ptr<user_dictionary::UserDictionarySessionHandler>
151 std::unique_ptr<session::SessionObserverHandler> observer_handler_;
152 std::unique_ptr<Stopwatch> stopwatch_;
153 std::unique_ptr<user_dictionary::UserDictionarySessionHandler>
154154 user_dictionary_session_handler_;
155 scoped_ptr<composer::TableManager> table_manager_;
156 scoped_ptr<commands::Request> request_;
155 std::unique_ptr<composer::TableManager> table_manager_;
156 std::unique_ptr<commands::Request> request_;
157157
158158 DISALLOW_COPY_AND_ASSIGN(SessionHandler);
159159 };
2626 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2727 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2828
29 #include <memory>
30
2931 #include "base/file_stream.h"
3032 #include "base/file_util.h"
3133 #include "base/number_util.h"
3234 #include "base/protobuf/descriptor.h"
3335 #include "base/protobuf/message.h"
3436 #include "base/protobuf/text_format.h"
35 #include "base/scoped_ptr.h"
3637 #include "base/string_piece.h"
3738 #include "base/util.h"
3839 #include "composer/key_parser.h"
4445 #include "protocol/config.pb.h"
4546 #include "session/request_test_util.h"
4647 #include "session/session_handler_test_util.h"
48 #include "testing/base/public/googletest.h"
4749 #include "testing/base/public/gunit.h"
4850 #include "usage_stats/usage_stats.h"
4951 #include "usage_stats/usage_stats_testing_util.h"
50
51 DECLARE_string(test_srcdir);
52 DECLARE_string(test_tmpdir);
5352
5453 namespace {
5554
116115 mozc::usage_stats::UsageStats::ClearAllStatsForTest();
117116 }
118117
119 scoped_ptr<EngineInterface> engine_;
120 scoped_ptr<TestSessionClient> client_;
121 scoped_ptr<Config> config_;
122 scoped_ptr<Output> last_output_;
123 scoped_ptr<Request> request_;
118 std::unique_ptr<EngineInterface> engine_;
119 std::unique_ptr<TestSessionClient> client_;
120 std::unique_ptr<Config> config_;
121 std::unique_ptr<Output> last_output_;
122 std::unique_ptr<Request> request_;
124123 };
125124
126125 // Tests should be passed.
2929 #include "session/session_handler.h"
3030
3131 #include <algorithm>
32 #include <memory>
3233 #include <string>
3334 #include <vector>
3435
3536 #include "base/file_util.h"
3637 #include "base/port.h"
37 #include "base/scoped_ptr.h"
3838 #include "engine/engine_factory.h"
3939 #include "protocol/commands.pb.h"
4040 #include "session/random_keyevents_generator.h"
4545 #include "base/mmap.h"
4646 #include "base/singleton.h"
4747 #include "data_manager/android/android_data_manager.h"
48 #endif
48 #endif // OS_ANDROID
4949
5050 namespace {
5151 uint32 GenerateRandomSeed() {
118118 TEST_F(SessionHandlerStressTest, BasicStressTest) {
119119 vector<commands::KeyEvent> keys;
120120 commands::Output output;
121 scoped_ptr<EngineInterface> engine(EngineFactory::Create());
121 std::unique_ptr<EngineInterface> engine(EngineFactory::Create());
122122 TestSessionClient client(engine.get());
123123 size_t keyevents_size = 0;
124124 const size_t kMaxEventSize = 10000;
2626 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
2727 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2828
29 #include "session/session_handler.h"
30
2931 #include <algorithm>
32 #include <memory>
3033 #include <string>
3134 #include <vector>
3235
4144 #include "protocol/commands.pb.h"
4245 #include "protocol/config.pb.h"
4346 #include "session/generic_storage_manager.h"
44 #include "session/session_handler.h"
4547 #include "session/session_handler_test_util.h"
4648 #include "testing/base/public/googletest.h"
4749 #include "testing/base/public/gunit.h"
5254 DECLARE_int32(create_session_min_interval);
5355 DECLARE_int32(last_command_timeout);
5456 DECLARE_int32(last_create_session_timeout);
55
5657
5758 namespace mozc {
5859
8788 const size_t session_size = 3;
8889 FLAGS_max_session_size = static_cast<int32>(session_size);
8990 {
90 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
91 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
9192 SessionHandler handler(engine.get());
9293
9394 // Create session_size + 1 sessions
112113
113114 FLAGS_max_session_size = static_cast<int32>(session_size);
114115 {
115 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
116 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
116117 SessionHandler handler(engine.get());
117118
118119 // Create session_size sessions
148149 ClockMock clock(1000, 0);
149150 Clock::SetClockForUnitTest(&clock);
150151
151 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
152 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
152153 SessionHandler handler(engine.get());
153154
154155 uint64 id = 0;
167168 ClockMock clock(1000, 0);
168169 Clock::SetClockForUnitTest(&clock);
169170
170 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
171 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
171172 SessionHandler handler(engine.get());
172173 uint64 id = 0;
173174 EXPECT_TRUE(CreateSession(&handler, &id));
184185 ClockMock clock(1000, 0);
185186 Clock::SetClockForUnitTest(&clock);
186187
187 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
188 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
188189 SessionHandler handler(engine.get());
189190 uint64 id = 0;
190191 EXPECT_TRUE(CreateSession(&handler, &id));
198199 }
199200
200201 TEST_F(SessionHandlerTest, ShutdownTest) {
201 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
202 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
202203 SessionHandler handler(engine.get());
203204 uint64 session_id = 0;
204205 EXPECT_TRUE(CreateSession(&handler, &session_id));
227228 }
228229
229230 TEST_F(SessionHandlerTest, ClearHistoryTest) {
230 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
231 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
231232 SessionHandler handler(engine.get());
232233 uint64 session_id = 0;
233234 EXPECT_TRUE(CreateSession(&handler, &session_id));
267268 }
268269
269270 TEST_F(SessionHandlerTest, ElapsedTimeTest) {
270 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
271 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
271272 SessionHandler handler(engine.get());
272273 uint64 id = 0;
273274
283284 config.set_incognito_mode(false);
284285 config::ConfigHandler::SetConfig(config);
285286
286 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
287 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
287288 SessionHandler handler(engine.get());
288289 uint64 session_id = 0;
289290 EXPECT_TRUE(CreateSession(&handler, &session_id));
407408 // Inject mock objects.
408409 MockStorageManager storageManager;
409410 GenericStorageManagerFactory::SetGenericStorageManager(&storageManager);
410 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
411 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
411412 SessionHandler handler(engine.get());
412413 {
413414 // InsertToStorage
461462 }
462463
463464 TEST_F(SessionHandlerTest, EmojiUsageStatsTest) {
464 scoped_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
465 std::unique_ptr<EngineInterface> engine(MockDataEngineFactory::Create());
465466 SessionHandler handler(engine.get());
466467
467468 commands::Command command;
3131 #ifndef MOZC_SESSION_SESSION_HANDLER_TEST_UTIL_H_
3232 #define MOZC_SESSION_SESSION_HANDLER_TEST_UTIL_H_
3333
34 #include <memory>
3435 #include <string>
36
3537 #include "base/port.h"
36 #include "base/scoped_ptr.h"
3738 #include "protocol/commands.pb.h"
3839 #include "protocol/config.pb.h"
3940 #include "testing/base/public/gunit.h"
138139 bool allow_callback);
139140
140141 uint64 id_;
141 scoped_ptr<SessionObserverInterface> usage_observer_;
142 scoped_ptr<SessionHandlerInterface> handler_;
142 std::unique_ptr<SessionObserverInterface> usage_observer_;
143 std::unique_ptr<SessionHandlerInterface> handler_;
143144 string callback_text_;
144145
145146 DISALLOW_COPY_AND_ASSIGN(TestSessionClient);
2929 // This is a test with the actual converter. So the result of the
3030 // conversion may differ from previous versions.
3131
32 #include <memory>
3233 #include <string>
3334
3435 #include "base/file_util.h"
197198 }
198199
199200 bool orig_use_history_rewriter_;
200 scoped_ptr<EngineInterface> engine_;
201 scoped_ptr<SessionHandler> handler_;
202 scoped_ptr<session::Session> session_;
203 scoped_ptr<composer::Table> table_;
201 std::unique_ptr<EngineInterface> engine_;
202 std::unique_ptr<SessionHandler> handler_;
203 std::unique_ptr<session::Session> session_;
204 std::unique_ptr<composer::Table> table_;
204205 config::Config config_;
205206 };
206207
3030
3131 #ifndef MOZC_SESSION_SESSION_SERVER_H_
3232 #define MOZC_SESSION_SESSION_SERVER_H_
33
34 #include <memory>
3335
3436 #include "base/port.h"
3537 #include "ipc/ipc.h"
6668
6769 private:
6870 // Must be defined earlier than session_handler_, which depends on this.
69 scoped_ptr<EngineInterface> engine_;
70 scoped_ptr<session::SessionUsageObserver> usage_observer_;
71 scoped_ptr<SessionHandlerInterface> session_handler_;
71 std::unique_ptr<EngineInterface> engine_;
72 std::unique_ptr<session::SessionUsageObserver> usage_observer_;
73 std::unique_ptr<SessionHandlerInterface> session_handler_;
7274
7375 DISALLOW_COPY_AND_ASSIGN(SessionServer);
7476 };
77
7578 } // namespace mozc
7679
7780 #endif // MOZC_SESSION_SESSION_SERVER_H_
2828
2929 #include "session/session_server.h"
3030
31 #include <memory>
3132 #include <string>
3233 #include <vector>
3334
3435 #include "base/scheduler.h"
3536 #include "base/system_util.h"
37 #include "testing/base/public/googletest.h"
3638 #include "testing/base/public/gunit.h"
37
38 DECLARE_string(test_tmpdir);
3939
4040 namespace mozc {
4141 namespace {
7373 };
7474
7575 TEST_F(SessionServerTest, SetSchedulerJobTest) {
76 scoped_ptr<JobRecorder> job_recorder(new JobRecorder);
76 std::unique_ptr<JobRecorder> job_recorder(new JobRecorder);
7777 Scheduler::SetSchedulerHandler(job_recorder.get());
78 scoped_ptr<SessionServer> session_server(new SessionServer);
78 std::unique_ptr<SessionServer> session_server(new SessionServer);
7979 const vector<Scheduler::JobSetting> &job_settings =
8080 job_recorder->job_settings();
8181 EXPECT_LE(2, job_settings.size());
2828
2929 #include "session/session.h"
3030
31 #include <memory>
3132 #include <string>
3233 #include <vector>
3334
6162 using ::mozc::commands::Request;
6263 using ::mozc::usage_stats::UsageStats;
6364
64 DECLARE_string(test_tmpdir);
65
6665 namespace mozc {
6766
6867 class ConverterInterface;
464463 }
465464
466465 private:
467 scoped_ptr<ConverterMockForReset> converter_mock_;
466 std::unique_ptr<ConverterMockForReset> converter_mock_;
468467 };
469468
470469 class ConverterMockForRevert : public ConverterMock {
522521 }
523522
524523 private:
525 scoped_ptr<ConverterMockForRevert> converter_mock_;
524 std::unique_ptr<ConverterMockForRevert> converter_mock_;
526525 };
527526
528527 } // namespace
840839 return engine_->mutable_converter_mock();
841840 }
842841
843 // IMPORTANT: Use scoped_ptr and instanciate an object in SetUp() method
842 // IMPORTANT: Use std::unique_ptr and instanciate an object in SetUp() method
844843 // if the target object should be initialized *AFTER* global settings
845844 // such as user profile dir or global config are set up for unit test.
846 // If you directly define a variable here without scoped_ptr, its
845 // If you directly define a variable here without std::unique_ptr, its
847846 // constructor will be called *BEFORE* SetUp() is called.
848 scoped_ptr<MockConverterEngine> engine_;
849 scoped_ptr<EngineInterface> mock_data_engine_;
850 scoped_ptr<TransliterationRewriter> t13n_rewriter_;
851 scoped_ptr<composer::Table> table_;
852 scoped_ptr<Request> mobile_request_;
847 std::unique_ptr<MockConverterEngine> engine_;
848 std::unique_ptr<EngineInterface> mock_data_engine_;
849 std::unique_ptr<TransliterationRewriter> t13n_rewriter_;
850 std::unique_ptr<composer::Table> table_;
851 std::unique_ptr<Request> mobile_request_;
853852 mozc::usage_stats::scoped_usage_stats_enabler usage_stats_enabler_;
854853 };
855854
868867
869868 // Make sure that the default roman table is initialized.
870869 {
871 scoped_ptr<Session> session(new Session(engine_.get()));
870 std::unique_ptr<Session> session(new Session(engine_.get()));
872871 InitSessionToPrecomposition(session.get());
873872 commands::Command command;
874873 SendKey("a", session.get(), &command);
899898
900899 // Make sure that the initial roman table has default value.
901900 {
902 scoped_ptr<Session> session(new Session(engine_.get()));
901 std::unique_ptr<Session> session(new Session(engine_.get()));
903902 InitSessionToPrecomposition(session.get());
904903 commands::Command command;
905904 SendKey("a", session.get(), &command);
910909 }
911910
912911 TEST_F(SessionTest, TestSendKey) {
913 scoped_ptr<Session> session(new Session(engine_.get()));
912 std::unique_ptr<Session> session(new Session(engine_.get()));
914913 InitSessionToPrecomposition(session.get());
915914
916915 commands::Command command;
945944 }
946945
947946 TEST_F(SessionTest, SendCommand) {
948 scoped_ptr<Session> session(new Session(engine_.get()));
947 std::unique_ptr<Session> session(new Session(engine_.get()));
949948 InitSessionToPrecomposition(session.get());
950949
951950 commands::Command command;
992991 EXPECT_FALSE(command.output().has_preedit());
993992 EXPECT_FALSE(command.output().has_candidates());
994993 // test of reseting the history segements
995 scoped_ptr<MockConverterEngineForReset> engine(
994 std::unique_ptr<MockConverterEngineForReset> engine(
996995 new MockConverterEngineForReset);
997996 session.reset(new Session(engine.get()));
998997 InitSessionToPrecomposition(session.get());
10091008
10101009 TEST_F(SessionTest, SwitchInputMode) {
10111010 {
1012 scoped_ptr<Session> session(new Session(engine_.get()));
1011 std::unique_ptr<Session> session(new Session(engine_.get()));
10131012 InitSessionToPrecomposition(session.get());
10141013 commands::Command command;
10151014
10321031 {
10331032 // Confirm that we can change the mode from DIRECT
10341033 // to other modes directly (without IMEOn command).
1035 scoped_ptr<Session> session(new Session(engine_.get()));
1034 std::unique_ptr<Session> session(new Session(engine_.get()));
10361035 InitSessionToDirect(session.get());
10371036
10381037 commands::Command command;
10631062
10641063 TEST_F(SessionTest, RevertComposition) {
10651064 // Issue#2237323
1066 scoped_ptr<Session> session(new Session(engine_.get()));
1065 std::unique_ptr<Session> session(new Session(engine_.get()));
10671066 InitSessionToPrecomposition(session.get());
10681067 commands::Command command;
10691068
10901089 }
10911090
10921091 TEST_F(SessionTest, InputMode) {
1093 scoped_ptr<Session> session(new Session(engine_.get()));
1092 std::unique_ptr<Session> session(new Session(engine_.get()));
10941093 InitSessionToPrecomposition(session.get());
10951094 commands::Command command;
10961095 EXPECT_TRUE(session->InputModeHalfASCII(&command));
11101109 }
11111110
11121111 TEST_F(SessionTest, SelectCandidate) {
1113 scoped_ptr<Session> session(new Session(engine_.get()));
1112 std::unique_ptr<Session> session(new Session(engine_.get()));
11141113 InitSessionToPrecomposition(session.get());
11151114
11161115 commands::Command command;
11411140 }
11421141
11431142 TEST_F(SessionTest, HighlightCandidate) {
1144 scoped_ptr<Session> session(new Session(engine_.get()));
1143 std::unique_ptr<Session> session(new Session(engine_.get()));
11451144 InitSessionToPrecomposition(session.get());
11461145
11471146 commands::Command command;
11761175 }
11771176
11781177 TEST_F(SessionTest, Conversion) {
1179 scoped_ptr<Session> session(new Session(engine_.get()));
1178 std::unique_ptr<Session> session(new Session(engine_.get()));
11801179 InitSessionToPrecomposition(session.get());
11811180
11821181 commands::Command command;
12081207 }
12091208
12101209 TEST_F(SessionTest, SegmentWidthShrink) {
1211 scoped_ptr<Session> session(new Session(engine_.get()));
1210 std::unique_ptr<Session> session(new Session(engine_.get()));
12121211 InitSessionToPrecomposition(session.get());
12131212
12141213 commands::Command command;
12311230 }
12321231
12331232 TEST_F(SessionTest, ConvertPrev) {
1234 scoped_ptr<Session> session(new Session(engine_.get()));
1233 std::unique_ptr<Session> session(new Session(engine_.get()));
12351234 InitSessionToPrecomposition(session.get());
12361235
12371236 commands::Command command;
12611260 Segments segments;
12621261 Segment *segment;
12631262 Segment::Candidate *candidate;
1264 scoped_ptr<Session> session(new Session(engine_.get()));
1263 std::unique_ptr<Session> session(new Session(engine_.get()));
12651264 InitSessionToPrecomposition(session.get());
12661265
12671266 commands::Command command;
13751374 Segments segments;
13761375 Segment *segment;
13771376 Segment::Candidate *candidate;
1378 scoped_ptr<Session> session(new Session(engine_.get()));
1377 std::unique_ptr<Session> session(new Session(engine_.get()));
13791378 InitSessionToPrecomposition(session.get());
13801379
13811380 commands::Command command;
14681467 Segments segments;
14691468 Segment *segment;
14701469 Segment::Candidate *candidate;
1471 scoped_ptr<Session> session(new Session(engine_.get()));
1470 std::unique_ptr<Session> session(new Session(engine_.get()));
14721471 InitSessionToPrecomposition(session.get());
14731472
14741473 commands::Command command;
15591558 Segment::Candidate *candidate;
15601559
15611560 // Issue#1560608
1562 scoped_ptr<Session> session(new Session(engine_.get()));
1561 std::unique_ptr<Session> session(new Session(engine_.get()));
15631562 InitSessionToPrecomposition(session.get());
15641563
15651564 commands::Command command;
16221621 Segments segments;
16231622 Segment *segment;
16241623 Segment::Candidate *candidate;
1625 scoped_ptr<Session> session(new Session(engine_.get()));
1624 std::unique_ptr<Session> session(new Session(engine_.get()));
16261625 InitSessionToPrecomposition(session.get());
16271626
16281627 commands::Command command;
16861685 Segments segments;
16871686 Segment *segment;
16881687 Segment::Candidate *candidate;
1689 scoped_ptr<Session> session(new Session(engine_.get()));
1688 std::unique_ptr<Session> session(new Session(engine_.get()));
16901689 InitSessionToPrecomposition(session.get());
16911690 commands::Command command;
16921691 InsertCharacterChars("jishin", session.get(), &command);
17341733 Segment *segment;
17351734 Segment::Candidate *candidate;
17361735
1737 scoped_ptr<Session> session(new Session(engine_.get()));
1736 std::unique_ptr<Session> session(new Session(engine_.get()));
17381737 InitSessionToPrecomposition(session.get());
17391738 commands::Command command;
17401739 InsertCharacterChars("jishin", session.get(), &command);
17721771 }
17731772
17741773 TEST_F(SessionTest, ConvertToTransliterationWithMultipleSegments) {
1775 scoped_ptr<Session> session(new Session(engine_.get()));
1774 std::unique_ptr<Session> session(new Session(engine_.get()));
17761775 InitSessionToPrecomposition(session.get());
17771776
17781777 commands::Command command;
18181817 }
18191818
18201819 TEST_F(SessionTest, ConvertToHalfWidth) {
1821 scoped_ptr<Session> session(new Session(engine_.get()));
1820 std::unique_ptr<Session> session(new Session(engine_.get()));
18221821 InitSessionToPrecomposition(session.get());
18231822 commands::Command command;
18241823 InsertCharacterChars("abc", session.get(), &command);
18551854 Segment *segment;
18561855 Segment::Candidate *candidate;
18571856
1858 scoped_ptr<Session> session(new Session(engine_.get()));
1857 std::unique_ptr<Session> session(new Session(engine_.get()));
18591858 InitSessionToPrecomposition(session.get());
18601859 commands::Command command;
18611860 InsertCharacterChars("dvd", session.get(), &command);
19041903 Segment *segment;
19051904 Segment::Candidate *candidate;
19061905
1907 scoped_ptr<Session> session(new Session(engine_.get()));
1906 std::unique_ptr<Session> session(new Session(engine_.get()));
19081907 InitSessionToPrecomposition(session.get());
19091908 InsertCharacterChars("dvd", session.get(), &command);
19101909
19451944 // Convert input string to Hiragana, Katakana, and Half Katakana
19461945 TEST_F(SessionTest, SwitchKanaType) {
19471946 { // From composition mode.
1948 scoped_ptr<Session> session(new Session(engine_.get()));
1947 std::unique_ptr<Session> session(new Session(engine_.get()));
19491948 InitSessionToPrecomposition(session.get());
19501949 commands::Command command;
19511950 InsertCharacterChars("abc", session.get(), &command);
19861985 }
19871986
19881987 { // From conversion mode.
1989 scoped_ptr<Session> session(new Session(engine_.get()));
1988 std::unique_ptr<Session> session(new Session(engine_.get()));
19901989 InitSessionToPrecomposition(session.get());
19911990 commands::Command command;
19921991 InsertCharacterChars("kanji", session.get(), &command);
20352034
20362035 // Rotate input mode among Hiragana, Katakana, and Half Katakana
20372036 TEST_F(SessionTest, InputModeSwitchKanaType) {
2038 scoped_ptr<Session> session(new Session(engine_.get()));
2037 std::unique_ptr<Session> session(new Session(engine_.get()));
20392038 InitSessionToPrecomposition(session.get());
20402039 commands::Command command;
20412040
21262125 }
21272126
21282127 TEST_F(SessionTest, TranslateHalfWidth) {
2129 scoped_ptr<Session> session(new Session(engine_.get()));
2128 std::unique_ptr<Session> session(new Session(engine_.get()));
21302129 InitSessionToPrecomposition(session.get());
21312130 commands::Command command;
21322131 InsertCharacterChars("abc", session.get(), &command);
21472146 }
21482147
21492148 TEST_F(SessionTest, UpdatePreferences) {
2150 scoped_ptr<Session> session(new Session(engine_.get()));
2149 std::unique_ptr<Session> session(new Session(engine_.get()));
21512150 InitSessionToPrecomposition(session.get());
21522151 commands::Command command;
21532152 InsertCharacterChars("aiueo", session.get(), &command);
22122211 table.AddRule("na", "\xe3\x81\xaa", "");
22132212 // This rule makes the "n" rule ambiguous.
22142213
2215 scoped_ptr<Session> session(new Session(engine_.get()));
2214 std::unique_ptr<Session> session(new Session(engine_.get()));
22162215 session->get_internal_composer_only_for_unittest()->SetTable(&table);
22172216 InitSessionToPrecomposition(session.get());
22182217
22552254 // "す゛", "ず"
22562255 table.AddRule("\xe3\x81\x99\xe3\x82\x9b", "\xe3\x81\x9a", "");
22572256
2258 scoped_ptr<Session> session(new Session(engine_.get()));
2257 std::unique_ptr<Session> session(new Session(engine_.get()));
22592258 session->get_internal_composer_only_for_unittest()->SetTable(&table);
22602259 InitSessionToPrecomposition(session.get());
22612260
23092308 Segments segments;
23102309 Segment *segment;
23112310 Segment::Candidate *candidate;
2312 scoped_ptr<Session> session(new Session(engine_.get()));
2311 std::unique_ptr<Session> session(new Session(engine_.get()));
23132312 InitSessionToPrecomposition(session.get());
23142313 commands::Command command;
23152314
23462345 }
23472346
23482347 TEST_F(SessionTest, OutputAllCandidateWords) {
2349 scoped_ptr<Session> session(new Session(engine_.get()));
2348 std::unique_ptr<Session> session(new Session(engine_.get()));
23502349 InitSessionToPrecomposition(session.get());
23512350 commands::Command command;
23522351
24632462 }
24642463
24652464 TEST_F(SessionTest, RequestUndo) {
2466 scoped_ptr<Session> session(new Session(engine_.get()));
2465 std::unique_ptr<Session> session(new Session(engine_.get()));
24672466
24682467 // It is OK not to check ImeContext::DIRECT because you cannot
24692468 // assign any key event to Undo command in DIRECT mode.
24912490 }
24922491
24932492 TEST_F(SessionTest, UndoForSingleSegment) {
2494 scoped_ptr<Session> session(new Session(engine_.get()));
2493 std::unique_ptr<Session> session(new Session(engine_.get()));
24952494 InitSessionToPrecomposition(session.get());
24962495
24972496 // Undo requires capability DELETE_PRECEDING_TEXT.
26282627 }
26292628
26302629 TEST_F(SessionTest, ClearUndoContextByKeyEvent_Issue5529702) {
2631 scoped_ptr<Session> session(new Session(engine_.get()));
2630 std::unique_ptr<Session> session(new Session(engine_.get()));
26322631 InitSessionToPrecomposition(session.get());
26332632
26342633 // Undo requires capability DELETE_PRECEDING_TEXT.
26632662 }
26642663
26652664 TEST_F(SessionTest, UndoForMultipleSegments) {
2666 scoped_ptr<Session> session(new Session(engine_.get()));
2665 std::unique_ptr<Session> session(new Session(engine_.get()));
26672666 InitSessionToPrecomposition(session.get());
26682667
26692668 // Undo requires capability DELETE_PRECEDING_TEXT.
28052804 }
28062805
28072806 TEST_F(SessionTest, UndoOrRewind_undo) {
2808 scoped_ptr<Session> session(new Session(engine_.get()));
2807 std::unique_ptr<Session> session(new Session(engine_.get()));
28092808 InitSessionToPrecomposition(session.get());
28102809
28112810 // Undo requires capability DELETE_PRECEDING_TEXT.
28632862 }
28642863
28652864 TEST_F(SessionTest, UndoOrRewind_rewind) {
2866 scoped_ptr<Session> session(new Session(engine_.get()));
2865 std::unique_ptr<Session> session(new Session(engine_.get()));
28672866 InitSessionToPrecomposition(session.get(), *mobile_request_);
28682867
28692868 Segments segments;
28952894
28962895 TEST_F(SessionTest, CommitRawText) {
28972896 { // From composition mode.
2898 scoped_ptr<Session> session(new Session(engine_.get()));
2897 std::unique_ptr<Session> session(new Session(engine_.get()));
28992898 InitSessionToPrecomposition(session.get());
29002899 commands::Command command;
29012900 InsertCharacterChars("abc", session.get(), &command);
29182917 EXPECT_EQ(ImeContext::PRECOMPOSITION, session->context().state());
29192918 }
29202919 { // From conversion mode.
2921 scoped_ptr<Session> session(new Session(engine_.get()));
2920 std::unique_ptr<Session> session(new Session(engine_.get()));
29222921 InitSessionToPrecomposition(session.get());
29232922 commands::Command command;
29242923 InsertCharacterChars("abc", session.get(), &command);
29602959 // "す゛", "ず"
29612960 table.AddRule("\xe3\x81\x99\xe3\x82\x9b", "\xe3\x81\x9a", "");
29622961
2963 scoped_ptr<Session> session(new Session(engine_.get()));
2962 std::unique_ptr<Session> session(new Session(engine_.get()));
29642963 session->get_internal_composer_only_for_unittest()->SetTable(&table);
29652964 InitSessionToPrecomposition(session.get());
29662965
30153014
30163015 TEST_F(SessionTest, ConvertNextPage_PrevPage) {
30173016 commands::Command command;
3018 scoped_ptr<Session> session(new Session(engine_.get()));
3017 std::unique_ptr<Session> session(new Session(engine_.get()));
30193018
30203019 InitSessionToPrecomposition(session.get());
30213020
31193118 TEST_F(SessionTest, NeedlessClearUndoContext) {
31203119 // This is a unittest against http://b/3423910.
31213120
3122 scoped_ptr<Session> session(new Session(engine_.get()));
3121 std::unique_ptr<Session> session(new Session(engine_.get()));
31233122 InitSessionToPrecomposition(session.get());
31243123
31253124 // Undo requires capability DELETE_PRECEDING_TEXT.
32003199 }
32013200
32023201 TEST_F(SessionTest, ClearUndoContextAfterDirectInputAfterConversion) {
3203 scoped_ptr<Session> session(new Session(engine_.get()));
3202 std::unique_ptr<Session> session(new Session(engine_.get()));
32043203 InitSessionToPrecomposition(session.get());
32053204
32063205 // Prepare Numpad
32503249
32513250 TEST_F(SessionTest, TemporaryInputModeAfterUndo) {
32523251 // This is a unittest against http://b/3423599.
3253 scoped_ptr<Session> session(new Session(engine_.get()));
3252 std::unique_ptr<Session> session(new Session(engine_.get()));
32543253 InitSessionToPrecomposition(session.get());
32553254
32563255 // Undo requires capability DELETE_PRECEDING_TEXT.
33213320
33223321 TEST_F(SessionTest, DCHECKFailureAfterUndo) {
33233322 // This is a unittest against http://b/3437358.
3324 scoped_ptr<Session> session(new Session(engine_.get()));
3323 std::unique_ptr<Session> session(new Session(engine_.get()));
33253324 InitSessionToPrecomposition(session.get());
33263325
33273326 commands::Capability capability;
33563355
33573356 TEST_F(SessionTest, ConvertToFullOrHalfAlphanumericAfterUndo) {
33583357 // This is a unittest against http://b/3423592.
3359 scoped_ptr<Session> session(new Session(engine_.get()));
3358 std::unique_ptr<Session> session(new Session(engine_.get()));
33603359 InitSessionToPrecomposition(session.get());
33613360
33623361 // Undo requires capability DELETE_PRECEDING_TEXT.
34203419 config::ConfigHandler::SetConfig(config);
34213420 ASSERT_EQ(config::Config::KANA, GET_CONFIG(preedit_method));
34223421
3423 scoped_ptr<Session> session(new Session(engine_.get()));
3422 std::unique_ptr<Session> session(new Session(engine_.get()));
34243423 InitSessionToPrecomposition(session.get());
34253424
34263425 // Undo requires capability DELETE_PRECEDING_TEXT.
35143513 Segments segments;
35153514 Segment *segment;
35163515 Segment::Candidate *candidate;
3517 scoped_ptr<Session> session(new Session(engine_.get()));
3516 std::unique_ptr<Session> session(new Session(engine_.get()));
35183517 InitSessionToPrecomposition(session.get());
35193518
35203519 commands::Command command;
35733572 Segments segments;
35743573 Segment *segment;
35753574 Segment::Candidate *candidate;
3576 scoped_ptr<Session> session(new Session(engine_.get()));
3575 std::unique_ptr<Session> session(new Session(engine_.get()));
35773576 InitSessionToPrecomposition(session.get());
35783577
35793578 commands::Command command;
36413640 TEST_F(SessionTest, T13NWithResegmentation) {
36423641 // This is a unittest against http://b/3272827
36433642 Segment::Candidate *candidate;
3644 scoped_ptr<Session> session(new Session(engine_.get()));
3643 std::unique_ptr<Session> session(new Session(engine_.get()));
36453644 InitSessionToPrecomposition(session.get());
36463645
36473646 commands::Command command;
37533752 config::ConfigHandler::SetConfig(config);
37543753 ASSERT_EQ(shortcut, GET_CONFIG(selection_shortcut));
37553754
3756 scoped_ptr<Session> session(new Session(engine_.get()));
3755 std::unique_ptr<Session> session(new Session(engine_.get()));
37573756 InitSessionToPrecomposition(session.get());
37583757
37593758 Segments segments;
37863785 ASSERT_EQ(config::Config::SHORTCUT_ASDFGHJKL,
37873786 GET_CONFIG(selection_shortcut));
37883787
3789 scoped_ptr<Session> session(new Session(engine_.get()));
3788 std::unique_ptr<Session> session(new Session(engine_.get()));
37903789 InitSessionToPrecomposition(session.get());
37913790
37923791 Segments segments;
38223821 }
38233822
38243823 TEST_F(SessionTest, NumpadKey) {
3825 scoped_ptr<Session> session(new Session(engine_.get()));
3824 std::unique_ptr<Session> session(new Session(engine_.get()));
38263825 InitSessionToPrecomposition(session.get());
38273826 commands::Command command;
38283827
39543953 ASSERT_EQ(config::Config::COMMA_PERIOD, GET_CONFIG(punctuation_method));
39553954 ASSERT_EQ(config::Config::CORNER_BRACKET_SLASH, GET_CONFIG(symbol_method));
39563955
3957 scoped_ptr<Session> session(new Session(engine_.get()));
3956 std::unique_ptr<Session> session(new Session(engine_.get()));
39583957 InitSessionToPrecomposition(session.get());
39593958
39603959 {
39873986
39883987 TEST_F(SessionTest, InsertCharacterWithShiftKey) {
39893988 { // Basic behavior
3990 scoped_ptr<Session> session(new Session(engine_.get()));
3989 std::unique_ptr<Session> session(new Session(engine_.get()));
39913990 InitSessionToPrecomposition(session.get());
39923991 commands::Command command;
39933992 EXPECT_TRUE(SendKey("a", session.get(), &command));
40054004 }
40064005
40074006 { // Revert back to the previous input mode.
4008 scoped_ptr<Session> session(new Session(engine_.get()));
4007 std::unique_ptr<Session> session(new Session(engine_.get()));
40094008 InitSessionToPrecomposition(session.get());
40104009 commands::Command command;
40114010 session->InputModeFullKatakana(&command);
40284027 TEST_F(SessionTest, ExitTemporaryAlphanumModeAfterCommitingSugesstion) {
40294028 // This is a unittest against http://b/2977131.
40304029 {
4031 scoped_ptr<Session> session(new Session(engine_.get()));
4030 std::unique_ptr<Session> session(new Session(engine_.get()));
40324031 InitSessionToPrecomposition(session.get());
40334032 commands::Command command;
40344033 EXPECT_TRUE(SendKey("N", session.get(), &command));
40644063 }
40654064
40664065 {
4067 scoped_ptr<Session> session(new Session(engine_.get()));
4066 std::unique_ptr<Session> session(new Session(engine_.get()));
40684067 InitSessionToPrecomposition(session.get());
40694068 commands::Command command;
40704069 EXPECT_TRUE(SendKey("N", session.get(), &command));
40984097 }
40994098
41004099 {
4101 scoped_ptr<Session> session(new Session(engine_.get()));
4100 std::unique_ptr<Session> session(new Session(engine_.get()));
41024101 InitSessionToPrecomposition(session.get());
41034102 commands::Command command;
41044103 EXPECT_TRUE(SendKey("N", session.get(), &command));
41364135
41374136 TEST_F(SessionTest, StatusOutput) {
41384137 { // Basic behavior
4139 scoped_ptr<Session> session(new Session(engine_.get()));
4138 std::unique_ptr<Session> session(new Session(engine_.get()));
41404139 InitSessionToPrecomposition(session.get());
41414140 commands::Command command;
41424141 EXPECT_TRUE(SendKey("a", session.get(), &command)); // "あ"
41934192 }
41944193
41954194 { // Katakana mode + Shift key
4196 scoped_ptr<Session> session(new Session(engine_.get()));
4195 std::unique_ptr<Session> session(new Session(engine_.get()));
41974196 InitSessionToPrecomposition(session.get());
41984197 commands::Command command;
41994198 session->InputModeFullKatakana(&command);
42634262 segment->add_candidate()->value = "MOZUKU";
42644263 }
42654264
4266 scoped_ptr<Session> session(new Session(engine_.get()));
4265 std::unique_ptr<Session> session(new Session(engine_.get()));
42674266 InitSessionToPrecomposition(session.get());
42684267 commands::Command command;
42694268 SendKey("M", session.get(), &command);
43534352 }
43544353
43554354 TEST_F(SessionTest, ExpandSuggestion) {
4356 scoped_ptr<Session> session(new Session(engine_.get()));
4355 std::unique_ptr<Session> session(new Session(engine_.get()));
43574356 InitSessionToPrecomposition(session.get());
43584357 commands::Command command;
43594358
43954394
43964395 TEST_F(SessionTest, ExpandSuggestionDirectMode) {
43974396 // On direct mode, ExpandSuggestion() should do nothing.
4398 scoped_ptr<Session> session(new Session(engine_.get()));
4397 std::unique_ptr<Session> session(new Session(engine_.get()));
43994398 commands::Command command;
44004399
44014400 session->IMEOff(&command);
44084407
44094408 TEST_F(SessionTest, ExpandSuggestionConversionMode) {
44104409 // On conversion mode, ExpandSuggestion() should do nothing.
4411 scoped_ptr<Session> session(new Session(engine_.get()));
4410 std::unique_ptr<Session> session(new Session(engine_.get()));
44124411 InitSessionToPrecomposition(session.get());
44134412 commands::Command command;
44144413
44504449 candidate->attributes = Segment::Candidate::PARTIALLY_KEY_CONSUMED;
44514450 candidate->consumed_key_size = Util::CharsLen(kJueri);
44524451
4453 scoped_ptr<Session> session(new Session(engine_.get()));
4452 std::unique_ptr<Session> session(new Session(engine_.get()));
44544453 InitSessionToPrecomposition(session.get(), request);
44554454
44564455 commands::Command command;
45404539 candidate = AddCandidate(kShino, "shino", segment);
45414540 }
45424541
4543 scoped_ptr<Session> session(new Session(engine_.get()));
4542 std::unique_ptr<Session> session(new Session(engine_.get()));
45444543 InitSessionToPrecomposition(session.get(), request);
45454544
45464545 commands::Command command;
45874586 }
45884587
45894588 TEST_F(SessionTest, ToggleAlphanumericMode) {
4590 scoped_ptr<Session> session(new Session(engine_.get()));
4589 std::unique_ptr<Session> session(new Session(engine_.get()));
45914590 InitSessionToPrecomposition(session.get());
45924591 commands::Command command;
45934592
46954694 }
46964695
46974696 TEST_F(SessionTest, InsertSpace) {
4698 scoped_ptr<Session> session(new Session(engine_.get()));
4697 std::unique_ptr<Session> session(new Session(engine_.get()));
46994698 InitSessionToPrecomposition(session.get());
47004699 commands::Command command;
47014700
47344733 }
47354734
47364735 TEST_F(SessionTest, InsertSpaceToggled) {
4737 scoped_ptr<Session> session(new Session(engine_.get()));
4736 std::unique_ptr<Session> session(new Session(engine_.get()));
47384737 InitSessionToPrecomposition(session.get());
47394738 commands::Command command;
47404739
47734772 }
47744773
47754774 TEST_F(SessionTest, InsertSpaceHalfWidth) {
4776 scoped_ptr<Session> session(new Session(engine_.get()));
4775 std::unique_ptr<Session> session(new Session(engine_.get()));
47774776 InitSessionToPrecomposition(session.get());
47784777 commands::Command command;
47794778
48164815 }
48174816
48184817 TEST_F(SessionTest, InsertSpaceFullWidth) {
4819 scoped_ptr<Session> session(new Session(engine_.get()));
4818 std::unique_ptr<Session> session(new Session(engine_.get()));
48204819 InitSessionToPrecomposition(session.get());
48214820 commands::Command command;
48224821
48744873 config::ConfigHandler::SetConfig(config);
48754874 }
48764875 {
4877 scoped_ptr<Session> session(new Session(engine_.get()));
4876 std::unique_ptr<Session> session(new Session(engine_.get()));
48784877 InitSessionToPrecomposition(session.get());
48794878
48804879 commands::Command command;
48884887 EXPECT_EQ(ImeContext::PRECOMPOSITION, session->context().state());
48894888 }
48904889 {
4891 scoped_ptr<Session> session(new Session(engine_.get()));
4890 std::unique_ptr<Session> session(new Session(engine_.get()));
48924891 InitSessionToPrecomposition(session.get());
48934892
48944893 commands::Command command;
49224921 config::ConfigHandler::SetConfig(config);
49234922 }
49244923 {
4925 scoped_ptr<Session> session(new Session(engine_.get()));
4924 std::unique_ptr<Session> session(new Session(engine_.get()));
49264925 InitSessionToPrecomposition(session.get());
49274926
49284927 commands::Command command;
49384937 EXPECT_EQ(commands::HALF_KATAKANA, command.output().mode());
49394938 }
49404939 {
4941 scoped_ptr<Session> session(new Session(engine_.get()));
4940 std::unique_ptr<Session> session(new Session(engine_.get()));
49424941 InitSessionToPrecomposition(session.get());
49434942
49444943 commands::Command command;
49754974 config::ConfigHandler::SetConfig(config);
49764975 }
49774976 {
4978 scoped_ptr<Session> session(new Session(engine_.get()));
4977 std::unique_ptr<Session> session(new Session(engine_.get()));
49794978 InitSessionToPrecomposition(session.get());
49804979
49814980 commands::Command command;
49924991 EXPECT_EQ(commands::HALF_ASCII, command.output().mode());
49934992 }
49944993 {
4995 scoped_ptr<Session> session(new Session(engine_.get()));
4994 std::unique_ptr<Session> session(new Session(engine_.get()));
49964995 InitSessionToPrecomposition(session.get());
49974996
49984997 commands::Command command;
50305029 config::ConfigHandler::SetConfig(config);
50315030 }
50325031 {
5033 scoped_ptr<Session> session(new Session(engine_.get()));
5032 std::unique_ptr<Session> session(new Session(engine_.get()));
50345033 InitSessionToPrecomposition(session.get());
50355034
50365035 commands::Command command;
50425041 EXPECT_FALSE(command.output().consumed());
50435042 }
50445043 {
5045 scoped_ptr<Session> session(new Session(engine_.get()));
5044 std::unique_ptr<Session> session(new Session(engine_.get()));
50465045 InitSessionToPrecomposition(session.get());
50475046
50485047 commands::Command command;
50805079 config.set_space_character_form(config::Config::FUNDAMENTAL_HALF_WIDTH);
50815080 config::ConfigHandler::SetConfig(config);
50825081
5083 scoped_ptr<Session> session(new Session(engine_.get()));
5082 std::unique_ptr<Session> session(new Session(engine_.get()));
50845083 InitSessionToPrecomposition(session.get());
50855084 commands::Command command;
50865085
51225121 config.set_space_character_form(config::Config::FUNDAMENTAL_FULL_WIDTH);
51235122 config::ConfigHandler::SetConfig(config);
51245123
5125 scoped_ptr<Session> session(new Session(engine_.get()));
5124 std::unique_ptr<Session> session(new Session(engine_.get()));
51265125 InitSessionToPrecomposition(session.get());
51275126 commands::Command command;
51285127
51635162 config.set_custom_keymap_table(custom_keymap_table);
51645163 config::ConfigHandler::SetConfig(config);
51655164
5166 scoped_ptr<Session> session(new Session(engine_.get()));
5165 std::unique_ptr<Session> session(new Session(engine_.get()));
51675166 InitSessionToPrecomposition(session.get());
51685167 commands::Command command;
51695168
52045203 config.set_custom_keymap_table(custom_keymap_table);
52055204 config::ConfigHandler::SetConfig(config);
52065205
5207 scoped_ptr<Session> session(new Session(engine_.get()));
5206 std::unique_ptr<Session> session(new Session(engine_.get()));
52085207 InitSessionToDirect(session.get());
52095208
52105209 commands::Command command;
52515250 config.set_custom_keymap_table(custom_keymap_table);
52525251 config::ConfigHandler::SetConfig(config);
52535252
5254 scoped_ptr<Session> session(new Session(engine_.get()));
5253 std::unique_ptr<Session> session(new Session(engine_.get()));
52555254 InitSessionToDirect(session.get());
52565255
52575256 commands::Command command;
53115310 config.set_space_character_form(config::Config::FUNDAMENTAL_FULL_WIDTH);
53125311 config::ConfigHandler::SetConfig(config);
53135312
5314 scoped_ptr<Session> session(new Session(engine_.get()));
5313 std::unique_ptr<Session> session(new Session(engine_.get()));
53155314 InitSessionToPrecomposition(session.get());
53165315 commands::Command command;
53175316
53635362 config.set_space_character_form(config::Config::FUNDAMENTAL_FULL_WIDTH);
53645363 config::ConfigHandler::SetConfig(config);
53655364
5366 scoped_ptr<Session> session(new Session(engine_.get()));
5365 std::unique_ptr<Session> session(new Session(engine_.get()));
53675366
53685367 {
53695368 InitSessionToConversionWithAiueo(session.get());
54335432 }
54345433
54355434 TEST_F(SessionTest, InsertSpaceFullWidthOnHalfKanaInput) {
5436 scoped_ptr<Session> session(new Session(engine_.get()));
5435 std::unique_ptr<Session> session(new Session(engine_.get()));
54375436 InitSessionToPrecomposition(session.get());
54385437 commands::Command command;
54395438
54535452 }
54545453
54555454 TEST_F(SessionTest, IsFullWidthInsertSpace) {
5456 scoped_ptr<Session> session;
5455 std::unique_ptr<Session> session;
54575456 config::Config config;
54585457
54595458 { // When |empty_command| does not have |empty_command.key().input()| field,
56275626 TEST_F(SessionTest, Issue1951385) {
56285627 // This is a unittest against http://b/1951385
56295628 Segments segments;
5630 scoped_ptr<Session> session(new Session(engine_.get()));
5629 std::unique_ptr<Session> session(new Session(engine_.get()));
56315630 InitSessionToPrecomposition(session.get());
56325631 commands::Command command;
56335632
56685667 segment->add_candidate()->value = "\xe9\x99\xb0\xe8\xac\x80\xe8\xaa\xac";
56695668 GetConverterMock()->SetStartPredictionForRequest(&segments, true);
56705669
5671 scoped_ptr<Session> session(new Session(engine_.get()));
5670 std::unique_ptr<Session> session(new Session(engine_.get()));
56725671 InitSessionToPrecomposition(session.get());
56735672 commands::Command command;
56745673 EXPECT_TRUE(session->SegmentWidthShrink(&command));
56895688
56905689 TEST_F(SessionTest, Issue1975771) {
56915690 // This is a unittest against http://b/1975771
5692 scoped_ptr<Session> session(new Session(engine_.get()));
5691 std::unique_ptr<Session> session(new Session(engine_.get()));
56935692 InitSessionToPrecomposition(session.get());
56945693
56955694 // Trigger suggest by pressing "a".
57235722 // "a<tab><ctrl-N>a" raised an exception because CommitFirstSegment
57245723 // did not check if the current status is in conversion or
57255724 // precomposition.
5726 scoped_ptr<Session> session(new Session(engine_.get()));
5725 std::unique_ptr<Session> session(new Session(engine_.get()));
57275726 InitSessionToPrecomposition(session.get());
57285727
57295728 // "a"
57555754 //
57565755 // The composition should have been reset if CommitSegment submitted
57575756 // the all segments (e.g. the size of segments is one).
5758 scoped_ptr<Session> session(new Session(engine_.get()));
5757 std::unique_ptr<Session> session(new Session(engine_.get()));
57595758 InitSessionToPrecomposition(session.get());
57605759 commands::Command command;
57615760 InsertCharacterChars("mozu", session.get(), &command);
57885787
57895788 TEST_F(SessionTest, Issue2026354) {
57905789 // This is a unittest against http://b/2026354
5791 scoped_ptr<Session> session(new Session(engine_.get()));
5790 std::unique_ptr<Session> session(new Session(engine_.get()));
57925791 InitSessionToPrecomposition(session.get());
57935792
57945793 commands::Command command;
58175816 Segments segments;
58185817 Segment *segment;
58195818 Segment::Candidate *candidate;
5820 scoped_ptr<Session> session(new Session(engine_.get()));
5819 std::unique_ptr<Session> session(new Session(engine_.get()));
58215820 InitSessionToPrecomposition(session.get());
58225821
58235822 segment = segments.add_segment();
58455844
58465845 TEST_F(SessionTest, Issue2187132) {
58475846 // This is a unittest against http://b/2187132
5848 scoped_ptr<Session> session(new Session(engine_.get()));
5847 std::unique_ptr<Session> session(new Session(engine_.get()));
58495848 InitSessionToPrecomposition(session.get());
58505849 commands::Command command;
58515850
58775876 config::ConfigHandler::SetConfig(config);
58785877 ASSERT_EQ(config::Config::KANA, GET_CONFIG(preedit_method));
58795878
5880 scoped_ptr<Session> session(new Session(engine_.get()));
5879 std::unique_ptr<Session> session(new Session(engine_.get()));
58815880 InitSessionToPrecomposition(session.get());
58825881
58835882 commands::Command command;
58995898
59005899 TEST_F(SessionTest, Issue1556649) {
59015900 // This is a unittest against http://b/1556649
5902 scoped_ptr<Session> session(new Session(engine_.get()));
5901 std::unique_ptr<Session> session(new Session(engine_.get()));
59035902 InitSessionToPrecomposition(session.get());
59045903 commands::Command command;
59055904 InsertCharacterChars("kudoudesu", session.get(), &command);
59275926 // This is a unittest against http://b/1518994.
59285927 // - Can't input space in ascii mode.
59295928 {
5930 scoped_ptr<Session> session(new Session(engine_.get()));
5929 std::unique_ptr<Session> session(new Session(engine_.get()));
59315930 InitSessionToPrecomposition(session.get());
59325931 commands::Command command;
59335932 EXPECT_TRUE(SendKey("a", session.get(), &command));
59435942 }
59445943
59455944 {
5946 scoped_ptr<Session> session(new Session(engine_.get()));
5945 std::unique_ptr<Session> session(new Session(engine_.get()));
59475946 InitSessionToPrecomposition(session.get());
59485947 commands::Command command;
59495948 EXPECT_TRUE(SendKey("a", session.get(), &command));
59605959 TEST_F(SessionTest, Issue1571043) {
59615960 // This is a unittest against http://b/1571043.
59625961 // - Underline of composition is separated.
5963 scoped_ptr<Session> session(new Session(engine_.get()));
5962 std::unique_ptr<Session> session(new Session(engine_.get()));
59645963 InitSessionToPrecomposition(session.get());
59655964 commands::Command command;
59665965 InsertCharacterChars("aiu", session.get(), &command);
59785977 TEST_F(SessionTest, Issue1799384) {
59795978 // This is a unittest against http://b/1571043.
59805979 // - ConvertToHiragana converts Vu to U+3094 "ヴ"
5981 scoped_ptr<Session> session(new Session(engine_.get()));
5980 std::unique_ptr<Session> session(new Session(engine_.get()));
59825981 InitSessionToPrecomposition(session.get());
59835982 commands::Command command;
59845983 InsertCharacterChars("ravu", session.get(), &command);
60146013 // This is a unittest against http://b/2217250.
60156014 // Temporary direct input mode through a special sequence such as
60166015 // www. continues even after committing them
6017 scoped_ptr<Session> session(new Session(engine_.get()));
6016 std::unique_ptr<Session> session(new Session(engine_.get()));
60186017 InitSessionToPrecomposition(session.get());
60196018 commands::Command command;
60206019 InsertCharacterChars("www.", session.get(), &command);
60306029 // This is a unittest against http://b/2223823
60316030 // Input mode does not recover like MS-IME by single shift key down
60326031 // and up.
6033 scoped_ptr<Session> session(new Session(engine_.get()));
6032 std::unique_ptr<Session> session(new Session(engine_.get()));
60346033 InitSessionToPrecomposition(session.get());
60356034 commands::Command command;
60366035 SendKey("G", session.get(), &command);
60466045 TEST_F(SessionTest, Issue2223762) {
60476046 // This is a unittest against http://b/2223762.
60486047 // - The first space in half-width alphanumeric mode is full-width.
6049 scoped_ptr<Session> session(new Session(engine_.get()));
6048 std::unique_ptr<Session> session(new Session(engine_.get()));
60506049 InitSessionToPrecomposition(session.get());
60516050 commands::Command command;
60526051
60646063 // - F6 and F7 convert space to half-width.
60656064
60666065 { // DisplayAsFullKatakana
6067 scoped_ptr<Session> session(new Session(engine_.get()));
6066 std::unique_ptr<Session> session(new Session(engine_.get()));
60686067 InitSessionToPrecomposition(session.get());
60696068 commands::Command command;
60706069
60856084 }
60866085
60876086 { // ConvertToFullKatakana
6088 scoped_ptr<Session> session(new Session(engine_.get()));
6087 std::unique_ptr<Session> session(new Session(engine_.get()));
60896088 InitSessionToPrecomposition(session.get());
60906089 commands::Command command;
60916090
61276126 // This is a unittest against http://b/2269058.
61286127 // - Temporary input mode should not be overridden by a permanent
61296128 // input mode change.
6130 scoped_ptr<Session> session(new Session(engine_.get()));
6129 std::unique_ptr<Session> session(new Session(engine_.get()));
61316130 InitSessionToPrecomposition(session.get());
61326131 commands::Command command;
61336132
61466145 // This is a unittest against http://b/2272745.
61476146 // A temporary input mode remains when a composition is canceled.
61486147 {
6149 scoped_ptr<Session> session(new Session(engine_.get()));
6148 std::unique_ptr<Session> session(new Session(engine_.get()));
61506149 InitSessionToPrecomposition(session.get());
61516150 commands::Command command;
61526151
61586157 }
61596158
61606159 {
6161 scoped_ptr<Session> session(new Session(engine_.get()));
6160 std::unique_ptr<Session> session(new Session(engine_.get()));
61626161 InitSessionToPrecomposition(session.get());
61636162 commands::Command command;
61646163
61776176 config.set_session_keymap(config::Config::MSIME);
61786177 config::ConfigHandler::SetConfig(config);
61796178
6180 scoped_ptr<Session> session(new Session(engine_.get()));
6179 std::unique_ptr<Session> session(new Session(engine_.get()));
61816180 InitSessionToPrecomposition(session.get());
61826181 ASSERT_EQ(config::Config::MSIME, GET_CONFIG(session_keymap));
61836182
62086207 config.set_session_keymap(config::Config::MSIME);
62096208 config::ConfigHandler::SetConfig(config);
62106209
6211 scoped_ptr<Session> session(new Session(engine_.get()));
6210 std::unique_ptr<Session> session(new Session(engine_.get()));
62126211 InitSessionToPrecomposition(session.get());
62136212 ASSERT_EQ(config::Config::MSIME, GET_CONFIG(session_keymap));
62146213
62206219 TEST_F(SessionTest, Issue2379374) {
62216220 // This is a unittest against http://b/2379374.
62226221 // Numpad ignores Direct input style when typing after conversion.
6223 scoped_ptr<Session> session(new Session(engine_.get()));
6222 std::unique_ptr<Session> session(new Session(engine_.get()));
62246223 InitSessionToPrecomposition(session.get());
62256224 commands::Command command;
62266225
62756274 // After typing "google", the input mode does not come back to the
62766275 // previous input mode.
62776276 {
6278 scoped_ptr<Session> session(new Session(engine_.get()));
6277 std::unique_ptr<Session> session(new Session(engine_.get()));
62796278 InitSessionToPrecomposition(session.get());
62806279 commands::Command command;
62816280
62906289 }
62916290
62926291 {
6293 scoped_ptr<Session> session(new Session(engine_.get()));
6292 std::unique_ptr<Session> session(new Session(engine_.get()));
62946293 InitSessionToPrecomposition(session.get());
62956294 commands::Command command;
62966295
63046303 }
63056304
63066305 {
6307 scoped_ptr<Session> session(new Session(engine_.get()));
6306 std::unique_ptr<Session> session(new Session(engine_.get()));
63086307 InitSessionToPrecomposition(session.get());
63096308 commands::Command command;
63106309
63226321 }
63236322
63246323 {
6325 scoped_ptr<Session> session(new Session(engine_.get()));
6324 std::unique_ptr<Session> session(new Session(engine_.get()));
63266325 InitSessionToPrecomposition(session.get());
63276326 commands::Command command;
63286327
63406339 // This is a unittest against http://b/2555503.
63416340 // Mode respects the previous character too much.
63426341
6343 scoped_ptr<Session> session(new Session(engine_.get()));
6342 std::unique_ptr<Session> session(new Session(engine_.get()));
63446343 InitSessionToPrecomposition(session.get());
63456344 commands::Command command;
63466345 SendKey("a", session.get(), &command);
63626361 // This is a unittest against http://b/2791640.
63636362 // Existing preedit should be committed when IME is turned off.
63646363
6365 scoped_ptr<Session> session(new Session(engine_.get()));
6364 std::unique_ptr<Session> session(new Session(engine_.get()));
63666365 InitSessionToPrecomposition(session.get());
63676366
63686367 commands::Command command;
63846383
63856384 // Check "hankaku/zenkaku"
63866385 {
6387 scoped_ptr<Session> session(new Session(engine_.get()));
6386 std::unique_ptr<Session> session(new Session(engine_.get()));
63886387 InitSessionToPrecomposition(session.get());
63896388
63906389 commands::Command command;
64036402
64046403 // Check "kanji"
64056404 {
6406 scoped_ptr<Session> session(new Session(engine_.get()));
6405 std::unique_ptr<Session> session(new Session(engine_.get()));
64076406 InitSessionToPrecomposition(session.get());
64086407
64096408 commands::Command command;
64266425 // InputModeChange commands from direct mode are supported only for Windows
64276426 // for now.
64286427 #ifdef OS_WIN
6429 scoped_ptr<Session> session(new Session(engine_.get()));
6428 std::unique_ptr<Session> session(new Session(engine_.get()));
64306429 InitSessionToDirect(session.get());
64316430 commands::Command command;
64326431
64826481
64836482 TEST_F(SessionTest, IMEOnWithModeTest) {
64846483 {
6485 scoped_ptr<Session> session(new Session(engine_.get()));
6484 std::unique_ptr<Session> session(new Session(engine_.get()));
64866485 InitSessionToDirect(session.get());
64876486
64886487 commands::Command command;
64996498 EXPECT_SINGLE_SEGMENT(kHiraganaA, command);
65006499 }
65016500 {
6502 scoped_ptr<Session> session(new Session(engine_.get()));
6501 std::unique_ptr<Session> session(new Session(engine_.get()));
65036502 InitSessionToDirect(session.get());
65046503
65056504 commands::Command command;
65146513 EXPECT_SINGLE_SEGMENT("\xE3\x82\xA2", command);
65156514 }
65166515 {
6517 scoped_ptr<Session> session(new Session(engine_.get()));
6516 std::unique_ptr<Session> session(new Session(engine_.get()));
65186517 InitSessionToDirect(session.get());
65196518
65206519 commands::Command command;
65296528 EXPECT_SINGLE_SEGMENT("\xEF\xBD\xB1", command);
65306529 }
65316530 {
6532 scoped_ptr<Session> session(new Session(engine_.get()));
6531 std::unique_ptr<Session> session(new Session(engine_.get()));
65336532 InitSessionToDirect(session.get());
65346533
65356534 commands::Command command;
65446543 EXPECT_SINGLE_SEGMENT("\xEF\xBD\x81", command);
65456544 }
65466545 {
6547 scoped_ptr<Session> session(new Session(engine_.get()));
6546 std::unique_ptr<Session> session(new Session(engine_.get()));
65486547 InitSessionToDirect(session.get());
65496548
65506549 commands::Command command;
65616560 }
65626561
65636562 TEST_F(SessionTest, InputModeConsumed) {
6564 scoped_ptr<Session> session(new Session(engine_.get()));
6563 std::unique_ptr<Session> session(new Session(engine_.get()));
65656564 InitSessionToPrecomposition(session.get());
65666565 commands::Command command;
65676566 EXPECT_TRUE(session->InputModeHiragana(&command));
65936592 config.set_session_keymap(config::Config::MSIME);
65946593 config::ConfigHandler::SetConfig(config);
65956594
6596 scoped_ptr<Session> session(new Session(engine_.get()));
6595 std::unique_ptr<Session> session(new Session(engine_.get()));
65976596 InitSessionToPrecomposition(session.get());
65986597 ASSERT_EQ(config::Config::MSIME, GET_CONFIG(session_keymap));
65996598 // In MSIME keymap, Hiragana is assigned for
66066605 }
66076606
66086607 TEST_F(SessionTest, InputModeOutputHasComposition) {
6609 scoped_ptr<Session> session(new Session(engine_.get()));
6608 std::unique_ptr<Session> session(new Session(engine_.get()));
66106609 InitSessionToPrecomposition(session.get());
66116610 commands::Command command;
66126611 SendKey("a", session.get(), &command);
66506649 }
66516650
66526651 TEST_F(SessionTest, InputModeOutputHasCandidates) {
6653 scoped_ptr<Session> session(new Session(engine_.get()));
6652 std::unique_ptr<Session> session(new Session(engine_.get()));
66546653 InitSessionToPrecomposition(session.get());
66556654
66566655 Segments segments;
67066705 }
67076706
67086707 TEST_F(SessionTest, PerformedCommand) {
6709 scoped_ptr<Session> session(new Session(engine_.get()));
6708 std::unique_ptr<Session> session(new Session(engine_.get()));
67106709 InitSessionToPrecomposition(session.get());
67116710
67126711 {
67546753 }
67556754
67566755 TEST_F(SessionTest, ResetContext) {
6757 scoped_ptr<MockConverterEngineForReset> engine(
6756 std::unique_ptr<MockConverterEngineForReset> engine(
67586757 new MockConverterEngineForReset);
67596758 ConverterMockForReset *convertermock = engine->mutable_converter_mock();
67606759
6761 scoped_ptr<Session> session(new Session(engine.get()));
6760 std::unique_ptr<Session> session(new Session(engine.get()));
67626761 InitSessionToPrecomposition(session.get());
67636762 commands::Command command;
67646763
67756774 }
67766775
67776776 TEST_F(SessionTest, ClearUndoOnResetContext) {
6778 scoped_ptr<Session> session(new Session(engine_.get()));
6777 std::unique_ptr<Session> session(new Session(engine_.get()));
67796778 InitSessionToPrecomposition(session.get());
67806779
67816780 // Undo requires capability DELETE_PRECEDING_TEXT.
68266825 }
68276826
68286827 TEST_F(SessionTest, IssueResetConversion) {
6829 scoped_ptr<MockConverterEngineForReset> engine(
6828 std::unique_ptr<MockConverterEngineForReset> engine(
68306829 new MockConverterEngineForReset);
68316830 ConverterMockForReset *convertermock = engine->mutable_converter_mock();
68326831
6833 scoped_ptr<Session> session(new Session(engine.get()));
6832 std::unique_ptr<Session> session(new Session(engine.get()));
68346833 InitSessionToPrecomposition(session.get());
68356834 commands::Command command;
68366835
68466845 }
68476846
68486847 TEST_F(SessionTest, IssueRevert) {
6849 scoped_ptr<MockConverterEngineForRevert> engine(
6848 std::unique_ptr<MockConverterEngineForRevert> engine(
68506849 new MockConverterEngineForRevert);
68516850 ConverterMockForRevert *convertermock = engine->mutable_converter_mock();
68526851
6853 scoped_ptr<Session> session(new Session(engine.get()));
6852 std::unique_ptr<Session> session(new Session(engine.get()));
68546853 InitSessionToPrecomposition(session.get());
68556854 commands::Command command;
68566855
68656864
68666865 // Undo command must call RervertConversion
68676866 TEST_F(SessionTest, Issue3428520) {
6868 scoped_ptr<MockConverterEngineForRevert> engine(
6867 std::unique_ptr<MockConverterEngineForRevert> engine(
68696868 new MockConverterEngineForRevert);
68706869 ConverterMockForRevert *convertermock = engine->mutable_converter_mock();
68716870
6872 scoped_ptr<Session> session(new Session(engine.get()));
6871 std::unique_ptr<Session> session(new Session(engine.get()));
68736872 InitSessionToPrecomposition(session.get());
68746873
68756874 // Undo requires capability DELETE_PRECEDING_TEXT.
69096908
69106909 // Revert command must clear the undo context.
69116910 TEST_F(SessionTest, Issue5742293) {
6912 scoped_ptr<Session> session(new Session(engine_.get()));
6911 std::unique_ptr<Session> session(new Session(engine_.get()));
69136912 InitSessionToPrecomposition(session.get());
69146913
69156914 // Undo requires capability DELETE_PRECEDING_TEXT.
69476946 config.set_use_auto_conversion(false);
69486947 config::ConfigHandler::SetConfig(config);
69496948 {
6950 scoped_ptr<Session> session(new Session(engine_.get()));
6949 std::unique_ptr<Session> session(new Session(engine_.get()));
69516950 InitSessionToPrecomposition(session.get());
69526951 commands::Command command;
69536952
69606959 "\xE3\x81\xA6\xE3\x81\x99\xE3\x81\xA8\xE3\x80\x82", command);
69616960 }
69626961 {
6963 scoped_ptr<Session> session(new Session(engine_.get()));
6962 std::unique_ptr<Session> session(new Session(engine_.get()));
69646963 InitSessionToPrecomposition(session.get());
69656964 commands::Command command;
69666965
69796978 config.set_use_auto_conversion(true);
69806979 config::ConfigHandler::SetConfig(config);
69816980 {
6982 scoped_ptr<Session> session(new Session(engine_.get()));
6981 std::unique_ptr<Session> session(new Session(engine_.get()));
69836982 InitSessionToPrecomposition(session.get());
69846983
69856984 commands::Command command;
69906989 EXPECT_SINGLE_SEGMENT_AND_KEY(kAiueo, kAiueo, command);
69916990 }
69926991 {
6993 scoped_ptr<Session> session(new Session(engine_.get()));
6992 std::unique_ptr<Session> session(new Session(engine_.get()));
69946993 InitSessionToPrecomposition(session.get());
69956994
69966995 commands::Command command;
70057004
70067005 // Don't trigger auto conversion for the pattern number + "."
70077006 {
7008 scoped_ptr<Session> session(new Session(engine_.get()));
7007 std::unique_ptr<Session> session(new Session(engine_.get()));
70097008 InitSessionToPrecomposition(session.get());
70107009 commands::Command command;
70117010
70207019
70217020 // Don't trigger auto conversion for the ".."
70227021 {
7023 scoped_ptr<Session> session(new Session(engine_.get()));
7022 std::unique_ptr<Session> session(new Session(engine_.get()));
70247023 InitSessionToPrecomposition(session.get());
70257024 commands::Command command;
70267025
70337032 }
70347033
70357034 {
7036 scoped_ptr<Session> session(new Session(engine_.get()));
7035 std::unique_ptr<Session> session(new Session(engine_.get()));
70377036 InitSessionToPrecomposition(session.get());
70387037 commands::Command command;
70397038
70507049
70517050 // Don't trigger auto conversion for "." only.
70527051 {
7053 scoped_ptr<Session> session(new Session(engine_.get()));
7052 std::unique_ptr<Session> session(new Session(engine_.get()));
70547053 InitSessionToPrecomposition(session.get());
70557054 commands::Command command;
70567055
70627061 }
70637062
70647063 {
7065 scoped_ptr<Session> session(new Session(engine_.get()));
7064 std::unique_ptr<Session> session(new Session(engine_.get()));
70667065 InitSessionToPrecomposition(session.get());
70677066 commands::Command command;
70687067
70767075
70777076 // Do auto conversion even if romanji-table is modified.
70787077 {
7079 scoped_ptr<Session> session(new Session(engine_.get()));
7078 std::unique_ptr<Session> session(new Session(engine_.get()));
70807079 InitSessionToPrecomposition(session.get());
70817080
70827081 // Modify romanji-table to convert "zz" -> "。"
71217120 config::Config::AUTO_CONVERSION_EXCLAMATION_MARK);
71227121
71237122 for (int i = 0; i < 4; ++i) {
7124 scoped_ptr<Session> session(new Session(engine_.get()));
7123 std::unique_ptr<Session> session(new Session(engine_.get()));
71257124 InitSessionToPrecomposition(session.get());
71267125 commands::Command command;
71277126
71617160 TEST_F(SessionTest, InputSpaceWithKatakanaMode) {
71627161 // This is a unittest against http://b/3203944.
71637162 // Input mode should not be changed when a space key is typed.
7164 scoped_ptr<Session> session(new Session(engine_.get()));
7163 std::unique_ptr<Session> session(new Session(engine_.get()));
71657164 InitSessionToPrecomposition(session.get());
71667165
71677166 commands::Command command;
71807179 TEST_F(SessionTest, AlphanumericOfSSH) {
71817180 // This is a unittest against http://b/3199626
71827181 // 'ssh' (っsh) + F10 should be 'ssh'.
7183 scoped_ptr<Session> session(new Session(engine_.get()));
7182 std::unique_ptr<Session> session(new Session(engine_.get()));
71847183 InitSessionToPrecomposition(session.get());
71857184
71867185 commands::Command command;
72147213 config::Config config;
72157214 config.set_session_keymap(config::Config::MSIME);
72167215 config::ConfigHandler::SetConfig(config);
7217 scoped_ptr<Session> session(new Session(engine_.get()));
7216 std::unique_ptr<Session> session(new Session(engine_.get()));
72187217
72197218 InitSessionToPrecomposition(session.get(), *mobile_request_);
72207219 commands::Command command;
73967395 commands::Command command;
73977396
73987397 {
7399 scoped_ptr<Session> session(new Session(engine_.get()));
7398 std::unique_ptr<Session> session(new Session(engine_.get()));
74007399 InitSessionToPrecomposition(session.get(), *mobile_request_);
74017400 // "は"
74027401 InsertCharacterCodeAndString('6', "\xE3\x81\xAF", session.get(), &command);
74137412 }
74147413
74157414 {
7416 scoped_ptr<Session> session(new Session(engine_.get()));
7415 std::unique_ptr<Session> session(new Session(engine_.get()));
74177416 InitSessionToPrecomposition(session.get(), *mobile_request_);
74187417
74197418 SendKey("6", session.get(), &command);
74307429 }
74317430
74327431 {
7433 scoped_ptr<Session> session(new Session(engine_.get()));
7432 std::unique_ptr<Session> session(new Session(engine_.get()));
74347433 InitSessionToPrecomposition(session.get(), *mobile_request_);
74357434
74367435 SendKey("1", session.get(), &command);
75097508 }
75107509
75117510 TEST_F(SessionTest, CommitCandidateAt2ndOf3Segments) {
7512 scoped_ptr<Session> session(new Session(engine_.get()));
7511 std::unique_ptr<Session> session(new Session(engine_.get()));
75137512 InitSessionToPrecomposition(session.get());
75147513
75157514 ConversionRequest request;
75857584 }
75867585
75877586 TEST_F(SessionTest, CommitCandidateAt3rdOf3Segments) {
7588 scoped_ptr<Session> session(new Session(engine_.get()));
7587 std::unique_ptr<Session> session(new Session(engine_.get()));
75897588 InitSessionToPrecomposition(session.get());
75907589
75917590 ConversionRequest request;
76487647 }
76497648
76507649 TEST_F(SessionTest, CommitCandidate_suggestion) {
7651 scoped_ptr<Session> session(new Session(engine_.get()));
7650 std::unique_ptr<Session> session(new Session(engine_.get()));
76527651 InitSessionToPrecomposition(session.get(), *mobile_request_);
76537652
76547653 Segments segments_mo;
76717670 EXPECT_EQ("MOCHA", command.output().candidates().candidate(0).value());
76727671
76737672 GetConverterMock()->SetFinishConversion(
7674 scoped_ptr<Segments>(new Segments).get(), true);
7673 std::unique_ptr<Segments>(new Segments).get(), true);
76757674 SetSendCommandCommand(commands::SessionCommand::SUBMIT_CANDIDATE, &command);
76767675 command.mutable_input()->mutable_command()->set_id(1);
76777676 session->SendCommand(&command);
76987697 }
76997698
77007699 TEST_F(SessionTest, CommitCandidate_T13N) {
7701 scoped_ptr<Session> session(new Session(engine_.get()));
7700 std::unique_ptr<Session> session(new Session(engine_.get()));
77027701 InitSessionToPrecomposition(session.get(), *mobile_request_);
77037702
77047703 {
77467745 #else
77477746 EXPECT_TRUE(FindCandidateID(command.output().candidates(), "TOK", &id));
77487747 GetConverterMock()->SetFinishConversion(
7749 scoped_ptr<Segments>(new Segments).get(), true);
7748 std::unique_ptr<Segments>(new Segments).get(), true);
77507749 SetSendCommandCommand(commands::SessionCommand::SUBMIT_CANDIDATE, &command);
77517750 command.mutable_input()->mutable_command()->set_id(id);
77527751 session->SendCommand(&command);
77587757 }
77597758
77607759 TEST_F(SessionTest, RequestConvertReverse) {
7761 scoped_ptr<Session> session(new Session(engine_.get()));
7760 std::unique_ptr<Session> session(new Session(engine_.get()));
77627761 InitSessionToPrecomposition(session.get());
77637762
77647763 commands::Command command;
77727771 }
77737772
77747773 TEST_F(SessionTest, ConvertReverse) {
7775 scoped_ptr<Session> session(new Session(engine_.get()));
7774 std::unique_ptr<Session> session(new Session(engine_.get()));
77767775 InitSessionToPrecomposition(session.get());
77777776 // "阿伊宇江於"
77787777 const char kKanjiAiueo[] =
77927791 }
77937792
77947793 TEST_F(SessionTest, EscapeFromConvertReverse) {
7795 scoped_ptr<Session> session(new Session(engine_.get()));
7794 std::unique_ptr<Session> session(new Session(engine_.get()));
77967795 InitSessionToPrecomposition(session.get());
77977796 // "阿伊宇江於"
77987797 const char kKanjiAiueo[] =
78197818 }
78207819
78217820 TEST_F(SessionTest, SecondEscapeFromConvertReverse) {
7822 scoped_ptr<Session> session(new Session(engine_.get()));
7821 std::unique_ptr<Session> session(new Session(engine_.get()));
78237822 InitSessionToPrecomposition(session.get());
78247823 // "阿伊宇江於"
78257824 const char kKanjiAiueo[] =
78517850
78527851 TEST_F(SessionTest, SecondEscapeFromConvertReverse_Issue5687022) {
78537852 // This is a unittest against http://b/5687022
7854 scoped_ptr<Session> session(new Session(engine_.get()));
7853 std::unique_ptr<Session> session(new Session(engine_.get()));
78557854 InitSessionToPrecomposition(session.get());
78567855 const char kInput[] = "abcde";
78577856 const char kReading[] = "abcde";
78787877 // without any text normalization even if the input text contains any
78797878 // special characters which Mozc usually do normalization.
78807879
7881 scoped_ptr<Session> session(new Session(engine_.get()));
7880 std::unique_ptr<Session> session(new Session(engine_.get()));
78827881 InitSessionToPrecomposition(session.get());
78837882 // "ゔ"
78847883 const char kInput[] = "\xE3\x82\x94";
79027901 }
79037902
79047903 TEST_F(SessionTest, EscapeFromCompositionAfterConvertReverse) {
7905 scoped_ptr<Session> session(new Session(engine_.get()));
7904 std::unique_ptr<Session> session(new Session(engine_.get()));
79067905 InitSessionToPrecomposition(session.get());
79077906 // "阿伊宇江於"
79087907 const char kKanjiAiueo[] =
79327931 }
79337932
79347933 TEST_F(SessionTest, ConvertReverseFromOffState) {
7935 scoped_ptr<Session> session(new Session(engine_.get()));
7934 std::unique_ptr<Session> session(new Session(engine_.get()));
79367935 InitSessionToPrecomposition(session.get());
79377936 // "阿伊宇江於"
79387937 const string kanji_aiueo =
79507949
79517950 TEST_F(SessionTest, DCHECKFailureAfterConvertReverse) {
79527951 // This is a unittest against http://b/5145295.
7953 scoped_ptr<Session> session(new Session(engine_.get()));
7952 std::unique_ptr<Session> session(new Session(engine_.get()));
79547953 InitSessionToPrecomposition(session.get());
79557954
79567955 commands::Command command;
79737972 }
79747973
79757974 TEST_F(SessionTest, LaunchTool) {
7976 scoped_ptr<Session> session(new Session(engine_.get()));
7975 std::unique_ptr<Session> session(new Session(engine_.get()));
79777976
79787977 {
79797978 commands::Command command;
80018000 }
80028001
80038002 TEST_F(SessionTest, NotZeroQuerySuggest) {
8004 scoped_ptr<Session> session(new Session(engine_.get()));
8003 std::unique_ptr<Session> session(new Session(engine_.get()));
80058004 InitSessionToPrecomposition(session.get());
80068005
80078006 // Disable zero query suggest.
81808179 command.Clear();
81818180 // FinishConversion is expected to return empty Segments.
81828181 GetConverterMock()->SetFinishConversion(
8183 scoped_ptr<Segments>(new Segments).get(), true);
8182 std::unique_ptr<Segments>(new Segments).get(), true);
81848183 session.CommitFirstSuggestion(&command);
81858184 EXPECT_TRUE(command.output().consumed());
81868185 EXPECT_FALSE(command.output().has_preedit());
82848283 request.set_special_romanji_table(
82858284 commands::Request::TWELVE_KEYS_TO_HALFWIDTHASCII);
82868285 session.SetRequest(&request);
8287 scoped_ptr<composer::Table> table(new composer::Table());
8286 std::unique_ptr<composer::Table> table(new composer::Table());
82888287 table->InitializeWithRequestAndConfig(
82898288 request, config::ConfigHandler::GetConfig());
82908289 session.SetTable(table.get());
86538652 }
86548653
86558654 TEST_F(SessionTest, MoveCursor) {
8656 scoped_ptr<Session> session(new Session(engine_.get()));
8655 std::unique_ptr<Session> session(new Session(engine_.get()));
86578656 InitSessionToPrecomposition(session.get());
86588657 commands::Command command;
86598658
86698668 }
86708669
86718670 TEST_F(SessionTest, MoveCursorRightWithCommit) {
8672 scoped_ptr<Session> session(new Session(engine_.get()));
8671 std::unique_ptr<Session> session(new Session(engine_.get()));
86738672 commands::Request request;
86748673 request.CopyFrom(*mobile_request_);
86758674 request.set_special_romanji_table(
86988697 }
86998698
87008699 TEST_F(SessionTest, MoveCursorLeftWithCommit) {
8701 scoped_ptr<Session> session(new Session(engine_.get()));
8700 std::unique_ptr<Session> session(new Session(engine_.get()));
87028701 commands::Request request;
87038702 request.CopyFrom(*mobile_request_);
87048703 request.set_special_romanji_table(
87348733 }
87358734
87368735 TEST_F(SessionTest, CommitHead) {
8737 scoped_ptr<Session> session(new Session(engine_.get()));
8736 std::unique_ptr<Session> session(new Session(engine_.get()));
87388737 composer::Table table;
87398738 // "も"
87408739 table.AddRule("mo", "\xe3\x82\x82", "");
87618760 }
87628761
87638762 TEST_F(SessionTest, PasswordWithToggleAlpabetInput) {
8764 scoped_ptr<Session> session(new Session(engine_.get()));
8763 std::unique_ptr<Session> session(new Session(engine_.get()));
87658764
87668765 commands::Request request;
87678766 request.CopyFrom(*mobile_request_);
88138812 }
88148813
88158814 TEST_F(SessionTest, SwitchInputFieldType) {
8816 scoped_ptr<Session> session(new Session(engine_.get()));
8815 std::unique_ptr<Session> session(new Session(engine_.get()));
88178816 InitSessionToPrecomposition(session.get());
88188817
88198818 // initial state is NORMAL
88318830 }
88328831
88338832 TEST_F(SessionTest, CursorKeysInPasswordMode) {
8834 scoped_ptr<Session> session(new Session(engine_.get()));
8833 std::unique_ptr<Session> session(new Session(engine_.get()));
88358834
88368835 commands::Request request;
88378836 request.CopyFrom(*mobile_request_);
88788877 }
88798878
88808879 TEST_F(SessionTest, BackKeyCommitsPreeditInPasswordMode) {
8881 scoped_ptr<Session> session(new Session(engine_.get()));
8880 std::unique_ptr<Session> session(new Session(engine_.get()));
88828881 InitSessionToPrecomposition(session.get());
88838882 commands::Command command;
88848883 commands::Request request;
89858984 }
89868985
89878986 TEST_F(SessionTest, ImeOff) {
8988 scoped_ptr<MockConverterEngineForReset> engine(
8987 std::unique_ptr<MockConverterEngineForReset> engine(
89898988 new MockConverterEngineForReset);
89908989 ConverterMockForReset *convertermock = engine->mutable_converter_mock();
89918990
89928991 convertermock->Reset();
8993 scoped_ptr<Session> session(new Session(engine.get()));
8992 std::unique_ptr<Session> session(new Session(engine.get()));
89948993 InitSessionToPrecomposition(session.get());
89958994 commands::Command command;
89968995 session->IMEOff(&command);
93899388 // Also it is not necessary to test in case of changing to CONVERSION state,
93909389 // because conversion window is always shown under current cursor.
93919390 TEST_F(SessionTest, CaretManagePrecompositionToCompositionTest) {
9392 scoped_ptr<Session> session(new Session(engine_.get()));
9391 std::unique_ptr<Session> session(new Session(engine_.get()));
93939392 InitSessionToPrecomposition(session.get());
93949393
93959394 commands::Command command;
94569455 segment->add_candidate()->value = "MOZUKU";
94579456 }
94589457
9459 scoped_ptr<Session> session(new Session(engine_.get()));
9458 std::unique_ptr<Session> session(new Session(engine_.get()));
94609459 InitSessionToPrecomposition(session.get());
94619460 commands::Command command;
94629461 const int kCaretInitialXpos = 10;
95679566 // Actual: ^a|i
95689567 // In the session side, we can only support the former case.
95699568
9570 scoped_ptr<Session> session(new Session(engine_.get()));
9569 std::unique_ptr<Session> session(new Session(engine_.get()));
95719570 InitSessionToPrecomposition(session.get());
95729571
95739572 commands::Command command;
96189617 segment->add_candidate()->value = "m";
96199618 }
96209619
9621 scoped_ptr<ConversionRequest> request_m_conv;
9620 std::unique_ptr<ConversionRequest> request_m_conv;
96229621
96239622 // [CONV-L] -> [COMP-R]
96249623 // Expectation: ^|a -> ^a|
96959694 }
96969695
96979696 TEST_F(SessionTest, CaretJumpCaseTest) {
9698 scoped_ptr<Session> session(new Session(engine_.get()));
9697 std::unique_ptr<Session> session(new Session(engine_.get()));
96999698 InitSessionToPrecomposition(session.get());
97009699
97019700 commands::Command command;
98329831 }
98339832
98349833 TEST_F(SessionTest, DeleteHistory) {
9835 scoped_ptr<Session> session(new Session(engine_.get()));
9834 std::unique_ptr<Session> session(new Session(engine_.get()));
98369835 InitSessionToPrecomposition(session.get());
98379836
98389837 Segments segments;
99109909 }
99119910
99129911 TEST_F(SessionTest, IndirectImeOnOff) {
9913 scoped_ptr<Session> session(new Session(engine_.get()));
9912 std::unique_ptr<Session> session(new Session(engine_.get()));
99149913 InitSessionToPrecomposition(session.get());
99159914
99169915 {
99579956 }
99589957
99599958 TEST_F(SessionTest, MakeSureIMEOn) {
9960 scoped_ptr<Session> session(new Session(engine_.get()));
9959 std::unique_ptr<Session> session(new Session(engine_.get()));
99619960 InitSessionToDirect(session.get());
99629961
99639962 {
1000910008 }
1001010009
1001110010 TEST_F(SessionTest, MakeSureIMEOff) {
10012 scoped_ptr<Session> session(new Session(engine_.get()));
10011 std::unique_ptr<Session> session(new Session(engine_.get()));
1001310012 InitSessionToPrecomposition(session.get());
1001410013
1001510014 {
2828
2929 #include "session/session_usage_observer.h"
3030
31 #include <memory>
3132 #include <string>
3233
3334 #include "base/clock.h"
3536 #include "base/logging.h"
3637 #include "base/scheduler.h"
3738 #include "base/scheduler_stub.h"
38 #include "base/scoped_ptr.h"
3939 #include "base/system_util.h"
4040 #include "base/util.h"
4141 #include "config/stats_config_util.h"
114114 event_stats->mutable_time_length_stats());
115115 }
116116
117 scoped_ptr<SchedulerStub> scheduler_stub_;
118 scoped_ptr<config::StatsConfigUtilMock> stats_config_util_mock_;
117 std::unique_ptr<SchedulerStub> scheduler_stub_;
118 std::unique_ptr<config::StatsConfigUtilMock> stats_config_util_mock_;
119119 };
120120
121121 TEST_F(SessionUsageObserverTest, DoNotSaveWhenDeleted) {
122122 stats_config_util_mock_->SetEnabled(false);
123123
124 scoped_ptr<SessionUsageObserver> observer(new SessionUsageObserver);
124 std::unique_ptr<SessionUsageObserver> observer(new SessionUsageObserver);
125125
126126 // Add command
127127 commands::Command command;
138138 }
139139
140140 TEST_F(SessionUsageObserverTest, ClientSideStatsInfolist) {
141 scoped_ptr<SessionUsageObserver> observer(new SessionUsageObserver);
141 std::unique_ptr<SessionUsageObserver> observer(new SessionUsageObserver);
142142
143143 // create session
144144 {
267267 }
268268
269269 TEST_F(SessionUsageObserverTest, LogTouchEvent) {
270 scoped_ptr<SessionUsageObserver> observer(new SessionUsageObserver);
270 std::unique_ptr<SessionUsageObserver> observer(new SessionUsageObserver);
271271
272272 // create session
273273 {
483483 }
484484
485485 TEST_F(SessionUsageObserverTest, LogTouchEventPasswordField) {
486 scoped_ptr<SessionUsageObserver> observer(new SessionUsageObserver);
486 std::unique_ptr<SessionUsageObserver> observer(new SessionUsageObserver);
487487
488488 // create session
489489 {
3030
3131 #include <algorithm>
3232 #include <cstring>
33 #include <memory>
3334 #include <numeric>
3435 #include <string>
3536
3738 #include "base/cpu_stats.h"
3839 #include "base/logging.h"
3940 #include "base/port.h"
40 #include "base/scoped_ptr.h"
4141 #include "base/system_util.h"
4242 #include "base/unnamed_event.h"
4343 #include "client/client_interface.h"
9797 }
9898
9999 void SessionWatchDog::Run() {
100 scoped_ptr<client::ClientInterface> client_impl;
100 std::unique_ptr<client::ClientInterface> client_impl;
101101 if (client_ == NULL) {
102102 VLOG(2) << "default client is used";
103103 client_impl.reset(client::ClientFactory::NewClient());
104104 client_ = client_impl.get();
105105 }
106106
107 scoped_ptr<CPUStatsInterface> cpu_stats_impl;
107 std::unique_ptr<CPUStatsInterface> cpu_stats_impl;
108108 if (cpu_stats_ == NULL) {
109109 VLOG(2) << "default cpu_stats is used";
110110 cpu_stats_impl.reset(new CPUStats);
3131 #ifndef MOZC_SESSION_SESSION_WATCH_DOG_H_
3232 #define MOZC_SESSION_SESSION_WATCH_DOG_H_
3333
34 #include <memory>
35
3436 #include "base/port.h"
35 #include "base/scoped_ptr.h"
3637 #include "base/thread.h"
3738
3839 namespace mozc {
8687 int32 interval_sec_;
8788 client::ClientInterface *client_;
8889 CPUStatsInterface *cpu_stats_;
89 scoped_ptr<UnnamedEvent> event_;
90 std::unique_ptr<UnnamedEvent> event_;
9091
9192 DISALLOW_COPY_AND_ASSIGN(SessionWatchDog);
9293 };
94
9395 } // namespace mozc
96
9497 #endif // MOZC_SESSION_SESSION_WATCH_DOG_H_