Bug 1314624 - Convert SampleWordBreakUsage() to a gtest. r=m_kato draft
authorMasatoshi Kimura <VYV03354@nifty.ne.jp>
Sat, 12 Nov 2016 15:00:51 +0900
changeset 437995 0b6988ba010173f2b59e69b4d684ca8f4df59823
parent 437246 d38d06f85ef59c5dbb5d4a1a8d895957a78714de
child 536795 cff50d7858ab3f43f7cf69f46751c57609570ebf
push id35588
push userVYV03354@nifty.ne.jp
push dateSat, 12 Nov 2016 06:20:08 +0000
reviewersm_kato
bugs1314624
milestone52.0a1
Bug 1314624 - Convert SampleWordBreakUsage() to a gtest. r=m_kato MozReview-Commit-ID: HItg8STx7fD
intl/lwbrk/gtest/TestLineBreak.cpp
--- a/intl/lwbrk/gtest/TestLineBreak.cpp
+++ b/intl/lwbrk/gtest/TestLineBreak.cpp
@@ -186,17 +186,17 @@ static const char wb0[] = "T";
 static const char wb1[] = "h";
 static const char wb2[] = "is   is a int";
 static const char wb3[] = "ernationali";
 static const char wb4[] = "zation work.";
 
 static const char* wb[] = { wb0, wb1, wb2, wb3, wb4 };
 
 void
-SamplePrintWordWithBreak()
+TestPrintWordWithBreak()
 {
   uint32_t numOfFragment = sizeof(wb) / sizeof(char*);
   nsIWordBreaker* wbk = nullptr;
 
   CallGetService(kWBrkCID, &wbk);
 
   nsAutoString result;
 
@@ -224,24 +224,25 @@ SamplePrintWordWithBreak()
                                      nextFragText.get(),
                                      nextFragText.Length());
       if (canBreak) {
         result.Append('^');
       }
       fragText.Assign(nextFragText);
     }
   }
-  printf("Output From SamplePrintWordWithBreak() \n\n");
-  printf("[%s]\n", NS_ConvertUTF16toUTF8(result).get());
+  ASSERT_STREQ("is^   ^is^ ^a^ ^  is a intzation^ ^work^ation work.",
+               NS_ConvertUTF16toUTF8(result).get());
 
   NS_IF_RELEASE(wbk);
 }
 
 void
-SampleFindWordBreakFromPosition(uint32_t fragN, uint32_t offset)
+TestFindWordBreakFromPosition(uint32_t fragN, uint32_t offset,
+                              const char* expected)
 {
   uint32_t numOfFragment = sizeof(wb) / sizeof(char*);
   nsIWordBreaker* wbk = nullptr;
 
   CallGetService(kWBrkCID, &wbk);
 
   NS_ConvertASCIItoUTF16 fragText(wb[fragN]);
 
@@ -294,31 +295,29 @@ SampleFindWordBreakFromPosition(uint32_t
 
       if (0 != r.mBegin) {
         break;
       }
       prevFragText.Assign(curFragText);
     }
   }
 
-  printf("Output From SamplePrintWordWithBreak() \n\n");
-  printf("[%s]\n", NS_ConvertUTF16toUTF8(result).get());
+  ASSERT_STREQ(expected, NS_ConvertUTF16toUTF8(result).get())
+    << "FindWordBreakFromPosition(" << fragN << ", " << offset << ")";
 
   NS_IF_RELEASE(wbk);
 }
 
-// XXX: this prints output but doesn't actually test anything and so cannot
-// fail. Bug 1314497 is open to convert it to a real test.
-TEST(LineBreak, SampleWordBreakUsage)
+TEST(LineBreak, WordBreakUsage)
 {
-  SamplePrintWordWithBreak();
-  SampleFindWordBreakFromPosition(0,0);  // This
-  SampleFindWordBreakFromPosition(1,0);  // This
-  SampleFindWordBreakFromPosition(2,0);  // This
-  SampleFindWordBreakFromPosition(2,1);  // This
-  SampleFindWordBreakFromPosition(2,9);  // [space]
-  SampleFindWordBreakFromPosition(2,10); // internationalization
-  SampleFindWordBreakFromPosition(3,4);  // internationalization
-  SampleFindWordBreakFromPosition(3,8);  // internationalization
-  SampleFindWordBreakFromPosition(4,6);  // [space]
-  SampleFindWordBreakFromPosition(4,7);  // work
+  TestPrintWordWithBreak();
+  TestFindWordBreakFromPosition(0, 0, "This");
+  TestFindWordBreakFromPosition(1, 0, "his");
+  TestFindWordBreakFromPosition(2, 0, "is");
+  TestFindWordBreakFromPosition(2, 1, "is");
+  TestFindWordBreakFromPosition(2, 9, " ");
+  TestFindWordBreakFromPosition(2, 10, "internationalization");
+  TestFindWordBreakFromPosition(3, 4, "ernationalization");
+  TestFindWordBreakFromPosition(3, 8, "ernationalization");
+  TestFindWordBreakFromPosition(4, 6, " ");
+  TestFindWordBreakFromPosition(4, 7, "work");
 }