1 // Copyright 2018 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "third_party/blink/renderer/core/html/forms/html_form_element.h"
6 
7 #include "testing/gtest/include/gtest/gtest.h"
8 #include "third_party/blink/renderer/core/testing/page_test_base.h"
9 
10 namespace blink {
11 
12 class HTMLFormElementTest : public PageTestBase {
13  protected:
14   void SetUp() override;
15 };
16 
SetUp()17 void HTMLFormElementTest::SetUp() {
18   PageTestBase::SetUp();
19   GetDocument().SetMimeType("text/html");
20 }
21 
TEST_F(HTMLFormElementTest,UniqueRendererFormId)22 TEST_F(HTMLFormElementTest, UniqueRendererFormId) {
23   SetHtmlInnerHTML(
24       "<body><form id='form1'></form><form id='form2'></form></body>");
25   auto* form1 = To<HTMLFormElement>(GetElementById("form1"));
26   unsigned first_id = form1->UniqueRendererFormId();
27   auto* form2 = To<HTMLFormElement>(GetElementById("form2"));
28   EXPECT_EQ(first_id + 1, form2->UniqueRendererFormId());
29   SetHtmlInnerHTML("<body><form id='form3'></form></body>");
30   auto* form3 = To<HTMLFormElement>(GetElementById("form3"));
31   EXPECT_EQ(first_id + 2, form3->UniqueRendererFormId());
32 }
33 
34 }  // namespace blink
35