@@ -151,3 +151,35 @@ def sample():
151
151
expected_query = {"hello" : ["world" ], "thing" : ["1" , "2" ]}
152
152
await display .goto ("?hello=world&thing=1&thing=2" )
153
153
await display .page .wait_for_selector ("#success" )
154
+
155
+
156
+ async def test_browser_popstate (display : DisplayFixture ):
157
+ @component
158
+ def sample ():
159
+ return simple .router (
160
+ route ("/" , link ("Root" , to = "/a" , id = "root" )),
161
+ route ("/a" , link ("A" , to = "/b" , id = "a" )),
162
+ route ("/b" , link ("B" , to = "/c" , id = "b" )),
163
+ route ("/c" , link ("C" , to = "/default" , id = "c" )),
164
+ route ("/{path:path}" , html .h1 ({"id" : "default" }, "Default" )),
165
+ )
166
+
167
+ await display .show (sample )
168
+
169
+ for link_selector in ["#root" , "#a" , "#b" , "#c" ]:
170
+ lnk = await display .page .wait_for_selector (link_selector )
171
+ await lnk .click ()
172
+
173
+ await display .page .wait_for_selector ("#default" )
174
+
175
+ await display .page .go_back ()
176
+ await display .page .wait_for_selector ("#c" )
177
+
178
+ await display .page .go_back ()
179
+ await display .page .wait_for_selector ("#b" )
180
+
181
+ await display .page .go_back ()
182
+ await display .page .wait_for_selector ("#a" )
183
+
184
+ await display .page .go_back ()
185
+ await display .page .wait_for_selector ("#root" )
0 commit comments