Add ShadowDOM tests for elements/change/ components

Release-Notes: skip
Google-Bug-Id: b/238288621
Change-Id: Id9eb05dd6f53bfc1aabbae149516d75f3049c1be
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts
index c69cf4a..66ef3ab 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts
@@ -369,7 +369,7 @@
       changeNum: TEST_NUMERIC_CHANGE_ID,
       project: 'gerrit' as RepoName,
     };
-    // Do this asynchronously as som tests don't expect the elemet to have
+    // Do this asynchronously as some tests don't expect the element to have
     // rendered yet.
     element.updateComplete.then(() => {
       assertIsDefined(element.actions);
@@ -381,6 +381,180 @@
     await element.updateComplete;
   });
 
+  test('render', () => {
+    expect(element).shadowDom.to.equal(/* HTML */ `
+      <div class="container loading">Loading...</div>
+      <div aria-hidden="false" class="container" hidden="" id="mainContent">
+        <section class="changeInfoSection">
+          <div class="header">
+            <h1 class="assistive-tech-only">Change :</h1>
+            <div class="headerTitle">
+              <div class="changeStatuses"></div>
+              <gr-change-star id="changeStar"> </gr-change-star>
+              <a aria-label="Change undefined" class="changeNumber"> </a>
+              <span class="changeNumberColon"> : </span>
+              <span class="headerSubject"> </span>
+              <gr-copy-clipboard
+                class="changeCopyClipboard"
+                hideinput=""
+                text="undefined: undefined | http://localhost:9876undefined"
+              >
+              </gr-copy-clipboard>
+            </div>
+            <div class="commitActions">
+              <gr-change-actions hidden="" id="actions"> </gr-change-actions>
+            </div>
+          </div>
+          <h2 class="assistive-tech-only">Change metadata</h2>
+          <div class="changeInfo">
+            <div class="changeInfo-column changeMetadata hideOnMobileOverlay">
+              <gr-change-metadata id="metadata"> </gr-change-metadata>
+            </div>
+            <div class="changeInfo-column mainChangeInfo" id="mainChangeInfo">
+              <div class="hideOnMobileOverlay" id="commitAndRelated">
+                <div class="commitContainer">
+                  <h3 class="assistive-tech-only">Commit Message</h3>
+                  <div>
+                    <gr-button
+                      aria-disabled="false"
+                      class="reply"
+                      id="replyBtn"
+                      primary=""
+                      role="button"
+                      tabindex="0"
+                      title="Open reply dialog to publish comments and add reviewers (shortcut: a)"
+                    >
+                      Reply
+                    </gr-button>
+                  </div>
+                  <div class="commitMessage" id="commitMessage">
+                    <gr-editable-content
+                      id="commitMessageEditor"
+                      remove-zero-width-space=""
+                    >
+                      <gr-linked-text pre="" remove-zero-width-space="">
+                        <span id="output" slot="insert"> </span>
+                      </gr-linked-text>
+                    </gr-editable-content>
+                  </div>
+                  <h3 class="assistive-tech-only">
+                    Comments and Checks Summary
+                  </h3>
+                  <gr-change-summary> </gr-change-summary>
+                  <gr-endpoint-decorator name="commit-container">
+                    <gr-endpoint-param name="change"> </gr-endpoint-param>
+                    <gr-endpoint-param name="revision"> </gr-endpoint-param>
+                  </gr-endpoint-decorator>
+                </div>
+                <div class="relatedChanges">
+                  <gr-related-changes-list id="relatedChanges">
+                  </gr-related-changes-list>
+                </div>
+                <div class="emptySpace"></div>
+              </div>
+            </div>
+          </div>
+        </section>
+        <h2 class="assistive-tech-only">Files and Comments tabs</h2>
+        <paper-tabs dir="null" id="primaryTabs" role="tablist" tabindex="0">
+          <paper-tab
+            aria-disabled="false"
+            aria-selected="true"
+            class="iron-selected"
+            data-name="files"
+            role="tab"
+            tabindex="0"
+          >
+            <span> Files </span>
+          </paper-tab>
+          <paper-tab
+            aria-disabled="false"
+            aria-selected="false"
+            class="commentThreads"
+            data-name="comments"
+            role="tab"
+            tabindex="-1"
+          >
+            <gr-tooltip-content has-tooltip="" title="">
+              <span> Comments </span>
+            </gr-tooltip-content>
+          </paper-tab>
+          <paper-tab
+            aria-disabled="false"
+            aria-selected="false"
+            data-name="change-view-tab-header-url"
+            role="tab"
+            tabindex="-1"
+          >
+            <gr-endpoint-decorator name="change-view-tab-header-url">
+              <gr-endpoint-param name="change"> </gr-endpoint-param>
+              <gr-endpoint-param name="revision"> </gr-endpoint-param>
+            </gr-endpoint-decorator>
+          </paper-tab>
+        </paper-tabs>
+        <section class="patchInfo">
+          <div>
+            <gr-file-list-header id="fileListHeader"> </gr-file-list-header>
+            <gr-file-list class="hideOnMobileOverlay" id="fileList">
+            </gr-file-list>
+          </div>
+        </section>
+        <gr-endpoint-decorator name="change-view-integration">
+          <gr-endpoint-param name="change"> </gr-endpoint-param>
+          <gr-endpoint-param name="revision"> </gr-endpoint-param>
+        </gr-endpoint-decorator>
+        <paper-tabs dir="null" id="secondaryTabs" role="tablist" tabindex="0">
+          <paper-tab
+            aria-disabled="false"
+            aria-selected="false"
+            class="changeLog"
+            data-name="_changeLog"
+            role="tab"
+            tabindex="-1"
+          >
+            Change Log
+          </paper-tab>
+        </paper-tabs>
+        <section class="changeLog">
+          <h2 class="assistive-tech-only">Change Log</h2>
+          <gr-messages-list class="hideOnMobileOverlay"> </gr-messages-list>
+        </section>
+      </div>
+      <gr-apply-fix-dialog id="applyFixDialog"> </gr-apply-fix-dialog>
+      <gr-overlay
+        aria-hidden="true"
+        id="downloadOverlay"
+        style="outline: none; display: none;"
+        tabindex="-1"
+        with-backdrop=""
+      >
+        <gr-download-dialog id="downloadDialog" role="dialog">
+        </gr-download-dialog>
+      </gr-overlay>
+      <gr-overlay
+        aria-hidden="true"
+        id="includedInOverlay"
+        style="outline: none; display: none;"
+        tabindex="-1"
+        with-backdrop=""
+      >
+        <gr-included-in-dialog id="includedInDialog"> </gr-included-in-dialog>
+      </gr-overlay>
+      <gr-overlay
+        aria-hidden="true"
+        class="scrollable"
+        id="replyOverlay"
+        no-cancel-on-esc-key=""
+        no-cancel-on-outside-click=""
+        scroll-action="lock"
+        style="outline: none; display: none;"
+        tabindex="-1"
+        with-backdrop=""
+      >
+      </gr-overlay>
+    `);
+  });
+
   test('handleMessageAnchorTap', async () => {
     element.changeNum = 1 as NumericChangeId;
     element.patchRange = {