|  | // Copyright 2020 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include <string> | 
|  |  | 
|  | #include "base/run_loop.h" | 
|  | #include "base/strings/utf_string_conversions.h" | 
|  | #include "base/test/bind.h" | 
|  | #include "chrome/test/base/in_process_browser_test.h" | 
|  | #include "components/services/language_detection/public/cpp/language_detection_service.h" | 
|  | #include "content/public/test/browser_test.h" | 
|  | #include "testing/gtest/include/gtest/gtest.h" | 
|  |  | 
|  | class LanguageDetectionServiceTest : public InProcessBrowserTest {}; | 
|  |  | 
|  | IN_PROC_BROWSER_TEST_F(LanguageDetectionServiceTest, | 
|  | DetermineLanguageReliable) { | 
|  | mojo::Remote<language_detection::mojom::LanguageDetectionService> service = | 
|  | language_detection::LaunchLanguageDetectionService(); | 
|  | std::u16string text = base::UTF8ToUTF16( | 
|  | "El niño atrapó un dorado muy grande con cebo vivo. Fileteó el " | 
|  | "pescado y lo asó a la parrilla. Sabía excelente. Espera pescar otro " | 
|  | "buen pescado mañana."); | 
|  |  | 
|  | base::RunLoop run_loop; | 
|  | service->DetermineLanguage( | 
|  | text, base::BindLambdaForTesting( | 
|  | [&](const std::string& language, bool is_reliable) { | 
|  | EXPECT_EQ("es", language); | 
|  | EXPECT_TRUE(is_reliable); | 
|  | run_loop.Quit(); | 
|  | })); | 
|  | run_loop.Run(); | 
|  | } | 
|  |  | 
|  | IN_PROC_BROWSER_TEST_F(LanguageDetectionServiceTest, | 
|  | DetermineLanguageUndeterminedUnreliable) { | 
|  | mojo::Remote<language_detection::mojom::LanguageDetectionService> service = | 
|  | language_detection::LaunchLanguageDetectionService(); | 
|  | std::u16string text = u"Not enough text for detection"; | 
|  |  | 
|  | base::RunLoop run_loop; | 
|  | service->DetermineLanguage( | 
|  | text, base::BindLambdaForTesting( | 
|  | [&](const std::string& language, bool is_reliable) { | 
|  | EXPECT_EQ("und", language); | 
|  | EXPECT_FALSE(is_reliable); | 
|  | run_loop.Quit(); | 
|  | })); | 
|  | run_loop.Run(); | 
|  | } |