| Index: chrome/browser/download/download_item_model_unittest.cc | 
| diff --git a/chrome/browser/download/download_item_model_unittest.cc b/chrome/browser/download/download_item_model_unittest.cc | 
| index 7325f00b07b25ae4eba581f975e7309a26d9b690..bd0125e75d65e12db863fec0ff5e4bbc0c7185ed 100644 | 
| --- a/chrome/browser/download/download_item_model_unittest.cc | 
| +++ b/chrome/browser/download/download_item_model_unittest.cc | 
| @@ -464,3 +464,35 @@ TEST_F(DownloadItemModelTest, ShouldRemoveFromShelfWhenComplete) { | 
| Mock::VerifyAndClearExpectations(&model()); | 
| } | 
| } | 
| + | 
| +TEST_F(DownloadItemModelTest, GetSetOpenedOrShown) { | 
| +  SetupDownloadItemDefaults(); | 
| + | 
| +  { | 
| +    // Not set by-default. | 
| +    EXPECT_CALL(item(), GetOpened()).WillRepeatedly(Return(false)); | 
| +    EXPECT_FALSE(model().GetOpenedOrShown()); | 
| +    Mock::VerifyAndClearExpectations(&item()); | 
| +  } | 
| + | 
| +  // Otherwise, it returns GetOpened() or GetOpenedOrShown(). | 
| +  const struct TestCase { | 
| +    bool opened; | 
| +    bool opened_or_shown; | 
| +    bool expected; | 
| +  } kTestCases[] = { | 
| +    { true,  true,  true }, | 
| +    { true,  false, true }, | 
| +    { false, true,  true }, | 
| +    { false, false, false } | 
| +  }; | 
| + | 
| +  for (unsigned i = 0; i < arraysize(kTestCases); i++) { | 
| +    const TestCase& test_case = kTestCases[i]; | 
| +    EXPECT_CALL(item(), GetOpened()).WillRepeatedly(Return(test_case.opened)); | 
| +    model().SetOpenedOrShown(test_case.opened_or_shown); | 
| +    EXPECT_EQ(test_case.expected, model().GetOpenedOrShown()) | 
| +      << "Test case: " << i; | 
| +    Mock::VerifyAndClearExpectations(&item()); | 
| +  } | 
| +} | 
|  |