| Index: fpdfsdk/fpdfformfill_embeddertest.cpp
|
| diff --git a/fpdfsdk/fpdfformfill_embeddertest.cpp b/fpdfsdk/fpdfformfill_embeddertest.cpp
|
| index c73dc008f7ba753d51d2b16375522f232c8dcd53..dfbfc66be529ab5f51ec4e1721ff14e79b4afee1 100644
|
| --- a/fpdfsdk/fpdfformfill_embeddertest.cpp
|
| +++ b/fpdfsdk/fpdfformfill_embeddertest.cpp
|
| @@ -84,4 +84,45 @@ TEST_F(FPDFFormFillEmbeddertest, BUG_551248) {
|
| EXPECT_EQ(0, alerts[0].type);
|
| EXPECT_EQ(0, alerts[0].icon);
|
| }
|
| +
|
| +TEST_F(FPDFFormFillEmbeddertest, BUG_620428) {
|
| + // Test that timers and intervals are cancelable.
|
| + EmbedderTestTimerHandlingDelegate delegate;
|
| + SetDelegate(&delegate);
|
| +
|
| + EXPECT_TRUE(OpenDocument("bug_620428.pdf"));
|
| + FPDF_PAGE page = LoadPage(0);
|
| + EXPECT_TRUE(page);
|
| + DoOpenActions();
|
| + delegate.AdvanceTime(5000);
|
| + UnloadPage(page);
|
| +
|
| + const auto& alerts = delegate.GetAlerts();
|
| + ASSERT_EQ(1U, alerts.size());
|
| + EXPECT_STREQ(L"done", alerts[0].message.c_str());
|
| +}
|
| +
|
| +TEST_F(FPDFFormFillEmbeddertest, BUG_634394) {
|
| + // Cancel timer inside timer callback.
|
| + EmbedderTestTimerHandlingDelegate delegate;
|
| + SetDelegate(&delegate);
|
| +
|
| + EXPECT_TRUE(OpenDocument("bug_634394.pdf"));
|
| + FPDF_PAGE page = LoadPage(0);
|
| + EXPECT_TRUE(page);
|
| + DoOpenActions();
|
| +
|
| + // Timers fire at most once per AdvanceTime(), allow intervals
|
| + // to fire several times if possible.
|
| + delegate.AdvanceTime(1000);
|
| + delegate.AdvanceTime(1000);
|
| + delegate.AdvanceTime(1000);
|
| + delegate.AdvanceTime(1000);
|
| + delegate.AdvanceTime(1000);
|
| + UnloadPage(page);
|
| +
|
| + const auto& alerts = delegate.GetAlerts();
|
| + EXPECT_EQ(2U, alerts.size());
|
| +}
|
| +
|
| #endif // PDF_ENABLE_V8
|
|
|