summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/html/forms/html_input_element_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/html/forms/html_input_element_test.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/html/forms/html_input_element_test.cc28
1 files changed, 28 insertions, 0 deletions
diff --git a/chromium/third_party/blink/renderer/core/html/forms/html_input_element_test.cc b/chromium/third_party/blink/renderer/core/html/forms/html_input_element_test.cc
index 6bbe2a3568e..83cdd180392 100644
--- a/chromium/third_party/blink/renderer/core/html/forms/html_input_element_test.cc
+++ b/chromium/third_party/blink/renderer/core/html/forms/html_input_element_test.cc
@@ -9,13 +9,16 @@
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/events/keyboard_event.h"
#include "third_party/blink/renderer/core/events/keyboard_event_init.h"
+#include "third_party/blink/renderer/core/fileapi/file_list.h"
#include "third_party/blink/renderer/core/frame/local_frame_view.h"
#include "third_party/blink/renderer/core/frame/visual_viewport.h"
#include "third_party/blink/renderer/core/html/forms/date_time_chooser.h"
+#include "third_party/blink/renderer/core/html/forms/file_input_type.h"
#include "third_party/blink/renderer/core/html/forms/html_form_element.h"
#include "third_party/blink/renderer/core/html/forms/html_option_element.h"
#include "third_party/blink/renderer/core/html/html_body_element.h"
#include "third_party/blink/renderer/core/html/html_html_element.h"
+#include "third_party/blink/renderer/core/layout/layout_object.h"
#include "third_party/blink/renderer/core/testing/page_test_base.h"
namespace blink {
@@ -203,4 +206,29 @@ TEST_F(HTMLInputElementTest, ChangingInputTypeCausesShadowRootToBeCreated) {
EXPECT_NE(nullptr, input->UserAgentShadowRoot());
}
+TEST_F(HTMLInputElementTest, RepaintAfterClearingFile) {
+ GetDocument().body()->SetInnerHTMLFromString("<input type='file' />");
+ HTMLInputElement* input =
+ ToHTMLInputElement(GetDocument().body()->firstChild());
+
+ Vector<FileChooserFileInfo> files;
+ files.push_back(
+ FileChooserFileInfo("/native/path/native-file", "display-name"));
+ FileList* list = FileInputType::CreateFileList(files, false);
+ ASSERT_TRUE(list);
+ EXPECT_EQ(1u, list->length());
+
+ input->setFiles(list);
+ GetDocument().View()->UpdateAllLifecyclePhases();
+
+ ASSERT_TRUE(input->GetLayoutObject());
+ EXPECT_FALSE(input->GetLayoutObject()->ShouldCheckForPaintInvalidation());
+
+ input->setValue("");
+ GetDocument().UpdateStyleAndLayoutTree();
+
+ ASSERT_TRUE(input->GetLayoutObject());
+ EXPECT_TRUE(input->GetLayoutObject()->ShouldCheckForPaintInvalidation());
+}
+
} // namespace blink