Index: content/browser/speech/speech_recognition_request_unittest.cc |
diff --git a/content/browser/speech/speech_recognition_request_unittest.cc b/content/browser/speech/speech_recognition_request_unittest.cc |
index a5d75c4caa9822cf5a71499f1e1ea7c90c0b8f81..53c80dc811a38aae3cd3950dbfe07b7e36713fd5 100644 |
--- a/content/browser/speech/speech_recognition_request_unittest.cc |
+++ b/content/browser/speech/speech_recognition_request_unittest.cc |
@@ -14,24 +14,21 @@ namespace speech_input { |
class SpeechRecognitionRequestTest : public SpeechRecognitionRequestDelegate, |
public testing::Test { |
public: |
- SpeechRecognitionRequestTest() : error_(false) { } |
+ SpeechRecognitionRequestTest() { } |
// Creates a speech recognition request and invokes it's URL fetcher delegate |
// with the given test data. |
void CreateAndTestRequest(bool success, const std::string& http_response); |
// SpeechRecognitionRequestDelegate methods. |
- virtual void SetRecognitionResult(bool error, |
- const SpeechInputResultArray& result) { |
- error_ = error; |
+ virtual void SetRecognitionResult(const SpeechInputResult& result) OVERRIDE { |
result_ = result; |
} |
protected: |
MessageLoop message_loop_; |
TestURLFetcherFactory url_fetcher_factory_; |
- bool error_; |
- SpeechInputResultArray result_; |
+ SpeechInputResult result_; |
}; |
void SpeechRecognitionRequestTest::CreateAndTestRequest( |
@@ -58,37 +55,50 @@ void SpeechRecognitionRequestTest::CreateAndTestRequest( |
TEST_F(SpeechRecognitionRequestTest, BasicTest) { |
// Normal success case with one result. |
CreateAndTestRequest(true, |
- "{\"hypotheses\":[{\"utterance\":\"123456\",\"confidence\":0.9}]}"); |
- EXPECT_FALSE(error_); |
- EXPECT_EQ(1U, result_.size()); |
- EXPECT_EQ(ASCIIToUTF16("123456"), result_[0].utterance); |
- EXPECT_EQ(0.9, result_[0].confidence); |
+ "{\"status\":0,\"hypotheses\":" |
+ "[{\"utterance\":\"123456\",\"confidence\":0.9}]}"); |
+ EXPECT_EQ(result_.error, kErrorNone); |
+ EXPECT_EQ(1U, result_.hypotheses.size()); |
+ EXPECT_EQ(ASCIIToUTF16("123456"), result_.hypotheses[0].utterance); |
+ EXPECT_EQ(0.9, result_.hypotheses[0].confidence); |
// Normal success case with multiple results. |
CreateAndTestRequest(true, |
- "{\"hypotheses\":[{\"utterance\":\"hello\",\"confidence\":0.9}," |
+ "{\"status\":0,\"hypotheses\":[" |
+ "{\"utterance\":\"hello\",\"confidence\":0.9}," |
"{\"utterance\":\"123456\",\"confidence\":0.5}]}"); |
- EXPECT_FALSE(error_); |
- EXPECT_EQ(2u, result_.size()); |
- EXPECT_EQ(ASCIIToUTF16("hello"), result_[0].utterance); |
- EXPECT_EQ(0.9, result_[0].confidence); |
- EXPECT_EQ(ASCIIToUTF16("123456"), result_[1].utterance); |
- EXPECT_EQ(0.5, result_[1].confidence); |
+ EXPECT_EQ(result_.error, kErrorNone); |
+ EXPECT_EQ(2u, result_.hypotheses.size()); |
+ EXPECT_EQ(ASCIIToUTF16("hello"), result_.hypotheses[0].utterance); |
+ EXPECT_EQ(0.9, result_.hypotheses[0].confidence); |
+ EXPECT_EQ(ASCIIToUTF16("123456"), result_.hypotheses[1].utterance); |
+ EXPECT_EQ(0.5, result_.hypotheses[1].confidence); |
// Zero results. |
- CreateAndTestRequest(true, "{\"hypotheses\":[]}"); |
- EXPECT_FALSE(error_); |
- EXPECT_EQ(0U, result_.size()); |
+ CreateAndTestRequest(true, "{\"status\":0,\"hypotheses\":[]}"); |
+ EXPECT_EQ(result_.error, kErrorNone); |
+ EXPECT_EQ(0U, result_.hypotheses.size()); |
// Http failure case. |
CreateAndTestRequest(false, ""); |
- EXPECT_TRUE(error_); |
- EXPECT_EQ(0U, result_.size()); |
+ EXPECT_EQ(result_.error, kErrorNetwork); |
+ EXPECT_EQ(0U, result_.hypotheses.size()); |
+ |
+ // Invalid status case. |
+ CreateAndTestRequest(true, "{\"status\":\"invalid\",\"hypotheses\":[]}"); |
+ EXPECT_EQ(result_.error, kErrorNetwork); |
+ EXPECT_EQ(0U, result_.hypotheses.size()); |
+ |
+ // Server-side error case. |
+ CreateAndTestRequest(true, "{\"status\":1,\"hypotheses\":[]}"); |
+ EXPECT_EQ(result_.error, kErrorNetwork); |
+ EXPECT_EQ(0U, result_.hypotheses.size()); |
// Malformed JSON case. |
- CreateAndTestRequest(true, "{\"hypotheses\":[{\"unknownkey\":\"hello\"}]}"); |
- EXPECT_TRUE(error_); |
- EXPECT_EQ(0U, result_.size()); |
+ CreateAndTestRequest(true, "{\"status\":0,\"hypotheses\":" |
+ "[{\"unknownkey\":\"hello\"}]}"); |
+ EXPECT_EQ(result_.error, kErrorNetwork); |
+ EXPECT_EQ(0U, result_.hypotheses.size()); |
} |
} // namespace speech_input |