View Javadoc
1   /*
2    * Copyright (c) 2002-2025 Gargoyle Software Inc.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * https://www.apache.org/licenses/LICENSE-2.0
8    *
9    * Unless required by applicable law or agreed to in writing, software
10   * distributed under the License is distributed on an "AS IS" BASIS,
11   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12   * See the License for the specific language governing permissions and
13   * limitations under the License.
14   */
15  package org.htmlunit.javascript.host.html;
16  
17  import java.io.ByteArrayOutputStream;
18  import java.io.ObjectOutputStream;
19  
20  import org.htmlunit.SimpleWebTestCase;
21  import org.htmlunit.html.HtmlPage;
22  import org.htmlunit.junit.annotation.Alerts;
23  import org.junit.jupiter.api.Test;
24  
25  /**
26   * Tests for {@link HTMLFrameElement} when used for {@link org.htmlunit.html.HtmlFrame}.
27   *
28   * @author Chris Erskine
29   * @author Marc Guillemot
30   * @author Thomas Robbs
31   * @author David K. Taylor
32   * @author Ahmed Ashour
33   * @author Frank Danek
34   */
35  public class HTMLFrameElementTest extends SimpleWebTestCase {
36  
37      /**
38       * @throws Exception if the test fails
39       */
40      @Test
41      @Alerts("Frame2")
42      public void serialization() throws Exception {
43          final String html = DOCTYPE_HTML
44              + "<html><head><title>first</title></head>\n"
45              + "<frameset cols='20%,80%'>\n"
46              + "  <frame id='frame1'>\n"
47              + "  <frame name='Frame2' onload='alert(this.name)' id='frame2'>\n"
48              + "</frameset></html>";
49  
50          final HtmlPage page = loadPageWithAlerts(html);
51  
52          final ObjectOutputStream objectOS = new ObjectOutputStream(new ByteArrayOutputStream());
53          objectOS.writeObject(page);
54      }
55  }