FrameTests.cs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722
  1. using Xunit;
  2. using Xunit.Abstractions;
  3. namespace Terminal.Gui.ViewTests;
  4. public class FrameTests {
  5. readonly ITestOutputHelper _output;
  6. public FrameTests (ITestOutputHelper output)
  7. {
  8. this._output = output;
  9. }
  10. // Test FrameToScreen
  11. [Theory]
  12. [InlineData (0, 0, 0, 0)]
  13. [InlineData (1, 0, 1, 0)]
  14. [InlineData (0, 1, 0, 1)]
  15. [InlineData (1, 1, 1, 1)]
  16. [InlineData (10, 10, 10, 10)]
  17. void FrameToScreen_NoSuperView (int frameX, int frameY, int expectedScreenX, int expectedScreenY)
  18. {
  19. var view = new View () {
  20. X = frameX,
  21. Y = frameY,
  22. Width = 10,
  23. Height = 10
  24. };
  25. var expected = new Rect (expectedScreenX, expectedScreenY, 10, 10);
  26. var actual = view.FrameToScreen ();
  27. Assert.Equal (expected, actual);
  28. }
  29. [Theory]
  30. [InlineData (0, 0, 0, 0, 0)]
  31. [InlineData (1, 0, 0, 1, 1)]
  32. [InlineData (2, 0, 0, 2, 2)]
  33. [InlineData (1, 1, 0, 2, 1)]
  34. [InlineData (1, 0, 1, 1, 2)]
  35. [InlineData (1, 1, 1, 2, 2)]
  36. [InlineData (1, 10, 10, 11, 11)]
  37. void FrameToScreen_SuperView (int superOffset, int frameX, int frameY, int expectedScreenX, int expectedScreenY)
  38. {
  39. var super = new View() {
  40. X = superOffset,
  41. Y = superOffset,
  42. Width = 20,
  43. Height = 20
  44. };
  45. var view = new View () {
  46. X = frameX,
  47. Y = frameY,
  48. Width = 10,
  49. Height = 10
  50. };
  51. super.Add (view);
  52. var expected = new Rect (expectedScreenX, expectedScreenY, 10, 10);
  53. var actual = view.FrameToScreen ();
  54. Assert.Equal (expected, actual);
  55. }
  56. [Theory]
  57. [InlineData (0, 0, 0, 1, 1)]
  58. [InlineData (1, 0, 0, 2, 2)]
  59. [InlineData (2, 0, 0, 3, 3)]
  60. [InlineData (1, 1, 0, 3, 2)]
  61. [InlineData (1, 0, 1, 2, 3)]
  62. [InlineData (1, 1, 1, 3, 3)]
  63. [InlineData (1, 10, 10, 12, 12)]
  64. void FrameToScreen_SuperView_WithBorder (int superOffset, int frameX, int frameY, int expectedScreenX, int expectedScreenY)
  65. {
  66. var super = new View () {
  67. X = superOffset,
  68. Y = superOffset,
  69. Width = 20,
  70. Height = 20,
  71. BorderStyle = LineStyle.Single
  72. };
  73. var view = new View () {
  74. X = frameX,
  75. Y = frameY,
  76. Width = 10,
  77. Height = 10
  78. };
  79. super.Add (view);
  80. var expected = new Rect (expectedScreenX, expectedScreenY, 10, 10);
  81. var actual = view.FrameToScreen ();
  82. Assert.Equal (expected, actual);
  83. }
  84. [Theory]
  85. [InlineData (0, 0, 0, 2, 2)]
  86. [InlineData (1, 0, 0, 4, 4)]
  87. [InlineData (2, 0, 0, 6, 6)]
  88. [InlineData (1, 1, 0, 5, 4)]
  89. [InlineData (1, 0, 1, 4, 5)]
  90. [InlineData (1, 1, 1, 5, 5)]
  91. [InlineData (1, 10, 10, 14, 14)]
  92. void FrameToScreen_NestedSuperView_WithBorder (int superOffset, int frameX, int frameY, int expectedScreenX, int expectedScreenY)
  93. {
  94. var superSuper = new View () {
  95. X = superOffset,
  96. Y = superOffset,
  97. Width = 30,
  98. Height = 30,
  99. BorderStyle = LineStyle.Single
  100. };
  101. var super = new View () {
  102. X = superOffset,
  103. Y = superOffset,
  104. Width = 20,
  105. Height = 20,
  106. BorderStyle = LineStyle.Single
  107. };
  108. superSuper.Add (super);
  109. var view = new View () {
  110. X = frameX,
  111. Y = frameY,
  112. Width = 10,
  113. Height = 10
  114. };
  115. super.Add (view);
  116. var expected = new Rect (expectedScreenX, expectedScreenY, 10, 10);
  117. var actual = view.FrameToScreen ();
  118. Assert.Equal (expected, actual);
  119. }
  120. [Fact]
  121. public void GetFramesThickness ()
  122. {
  123. var view = new View ();
  124. Assert.Equal (Thickness.Empty, view.GetFramesThickness ());
  125. view.Margin.Thickness = new Thickness (1);
  126. Assert.Equal (new Thickness (1), view.GetFramesThickness ());
  127. view.Border.Thickness = new Thickness (1);
  128. Assert.Equal (new Thickness (2), view.GetFramesThickness ());
  129. view.Padding.Thickness = new Thickness (1);
  130. Assert.Equal (new Thickness (3), view.GetFramesThickness ());
  131. view.Padding.Thickness = new Thickness (2);
  132. Assert.Equal (new Thickness (4), view.GetFramesThickness ());
  133. view.Padding.Thickness = new Thickness (1, 2, 3, 4);
  134. Assert.Equal (new Thickness (3, 4, 5, 6), view.GetFramesThickness ());
  135. view.Margin.Thickness = new Thickness (1, 2, 3, 4);
  136. Assert.Equal (new Thickness (3, 5, 7, 9), view.GetFramesThickness ());
  137. view.Dispose ();
  138. }
  139. [Theory, AutoInitShutdown]
  140. [InlineData (0)]
  141. [InlineData (1)]
  142. [InlineData (2)]
  143. [InlineData (3)]
  144. public void Border_With_Title_Size_Height (int height)
  145. {
  146. var win = new Window () {
  147. Title = "1234",
  148. Width = Dim.Fill (),
  149. Height = Dim.Fill ()
  150. };
  151. var rs = Application.Begin (win);
  152. bool firstIteration = false;
  153. ((FakeDriver)Application.Driver).SetBufferSize (20, height);
  154. Application.RunIteration (ref rs, ref firstIteration);
  155. var expected = string.Empty;
  156. switch (height) {
  157. case 0:
  158. //Assert.Equal (new Rect (0, 0, 17, 0), subview.Frame);
  159. expected = @"
  160. ";
  161. break;
  162. case 1:
  163. //Assert.Equal (new Rect (0, 0, 17, 0), subview.Frame);
  164. expected = @"
  165. ────────────────────";
  166. break;
  167. case 2:
  168. //Assert.Equal (new Rect (0, 0, 17, 1), subview.Frame);
  169. expected = @"
  170. ┌┤1234├────────────┐
  171. └──────────────────┘
  172. ";
  173. break;
  174. case 3:
  175. //Assert.Equal (new Rect (0, 0, 17, 2), subview.Frame);
  176. expected = @"
  177. ┌┤1234├────────────┐
  178. │ │
  179. └──────────────────┘
  180. ";
  181. break;
  182. }
  183. _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
  184. Application.End (rs);
  185. }
  186. [Theory, AutoInitShutdown]
  187. [InlineData (0)]
  188. [InlineData (1)]
  189. [InlineData (2)]
  190. [InlineData (3)]
  191. [InlineData (4)]
  192. [InlineData (5)]
  193. [InlineData (6)]
  194. [InlineData (7)]
  195. [InlineData (8)]
  196. [InlineData (9)]
  197. [InlineData (10)]
  198. public void Border_With_Title_Size_Width (int width)
  199. {
  200. var win = new Window () {
  201. Title = "1234",
  202. Width = Dim.Fill (),
  203. Height = Dim.Fill ()
  204. };
  205. var rs = Application.Begin (win);
  206. bool firstIteration = false;
  207. ((FakeDriver)Application.Driver).SetBufferSize (width, 3);
  208. Application.RunIteration (ref rs, ref firstIteration);
  209. var expected = string.Empty;
  210. switch (width) {
  211. case 1:
  212. //Assert.Equal (new Rect (0, 0, 17, 0), subview.Frame);
  213. expected = @"
  214. │";
  215. break;
  216. case 2:
  217. //Assert.Equal (new Rect (0, 0, 17, 1), subview.Frame);
  218. expected = @"
  219. ┌┐
  220. ││
  221. └┘";
  222. break;
  223. case 3:
  224. //Assert.Equal (new Rect (0, 0, 17, 2), subview.Frame);
  225. expected = @"
  226. ┌─┐
  227. │ │
  228. └─┘
  229. ";
  230. break;
  231. case 4:
  232. //Assert.Equal (new Rect (0, 0, 17, 3), subview.Frame);
  233. expected = @"
  234. ┌┤├┐
  235. │ │
  236. └──┘";
  237. break;
  238. case 5:
  239. //Assert.Equal (new Rect (0, 0, 17, 3), subview.Frame);
  240. expected = @"
  241. ┌┤1├┐
  242. │ │
  243. └───┘";
  244. break;
  245. case 6:
  246. //Assert.Equal (new Rect (0, 0, 17, 3), subview.Frame);
  247. expected = @"
  248. ┌┤12├┐
  249. │ │
  250. └────┘";
  251. break;
  252. case 7:
  253. //Assert.Equal (new Rect (0, 0, 17, 3), subview.Frame);
  254. expected = @"
  255. ┌┤123├┐
  256. │ │
  257. └─────┘";
  258. break;
  259. case 8:
  260. //Assert.Equal (new Rect (0, 0, 17, 3), subview.Frame);
  261. expected = @"
  262. ┌┤1234├┐
  263. │ │
  264. └──────┘";
  265. break;
  266. case 9:
  267. //Assert.Equal (new Rect (0, 0, 17, 3), subview.Frame);
  268. expected = @"
  269. ┌┤1234├─┐
  270. │ │
  271. └───────┘";
  272. break;
  273. case 10:
  274. //Assert.Equal (new Rect (0, 0, 17, 3), subview.Frame);
  275. expected = @"
  276. ┌┤1234├──┐
  277. │ │
  278. └────────┘";
  279. break;
  280. }
  281. _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
  282. }
  283. [Fact, AutoInitShutdown]
  284. public void NoSuperView ()
  285. {
  286. var win = new Window () {
  287. Width = Dim.Fill (),
  288. Height = Dim.Fill ()
  289. };
  290. var rs = Application.Begin (win);
  291. bool firstIteration = false;
  292. ((FakeDriver)Application.Driver).SetBufferSize (3, 3);
  293. Application.RunIteration (ref rs, ref firstIteration);
  294. var expected = @"
  295. ┌─┐
  296. │ │
  297. └─┘";
  298. _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
  299. }
  300. [Fact, AutoInitShutdown]
  301. public void HasSuperView ()
  302. {
  303. Application.Top.BorderStyle = LineStyle.Double;
  304. var frame = new FrameView () {
  305. Width = Dim.Fill (),
  306. Height = Dim.Fill ()
  307. };
  308. Application.Top.Add (frame);
  309. var rs = Application.Begin (Application.Top);
  310. bool firstIteration = false;
  311. ((FakeDriver)Application.Driver).SetBufferSize (5, 5);
  312. Application.RunIteration (ref rs, ref firstIteration);
  313. var expected = @"
  314. ╔═══╗
  315. ║┌─┐║
  316. ║│ │║
  317. ║└─┘║
  318. ╚═══╝";
  319. _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
  320. Application.End (rs);
  321. }
  322. [Fact, AutoInitShutdown]
  323. public void HasSuperView_Title ()
  324. {
  325. Application.Top.BorderStyle = LineStyle.Double;
  326. var frame = new FrameView () {
  327. Title = "1234",
  328. Width = Dim.Fill (),
  329. Height = Dim.Fill ()
  330. };
  331. Application.Top.Add (frame);
  332. var rs = Application.Begin (Application.Top);
  333. bool firstIteration = false;
  334. ((FakeDriver)Application.Driver).SetBufferSize (10, 4);
  335. Application.RunIteration (ref rs, ref firstIteration);
  336. var expected = @"
  337. ╔════════╗
  338. ║┌┤1234├┐║
  339. ║└──────┘║
  340. ╚════════╝";
  341. _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
  342. Application.End (rs);
  343. }
  344. [Theory, AutoInitShutdown]
  345. [InlineData (0)]
  346. [InlineData (1)]
  347. [InlineData (2)]
  348. [InlineData (3)]
  349. [InlineData (4)]
  350. [InlineData (5)]
  351. [InlineData (6)]
  352. [InlineData (7)]
  353. [InlineData (8)]
  354. [InlineData (9)]
  355. [InlineData (10)]
  356. public void Border_With_Title_Border_Double_Thickness_Top_Two_Size_Width (int width)
  357. {
  358. var win = new Window () {
  359. Title = "1234",
  360. Width = Dim.Fill (),
  361. Height = Dim.Fill (),
  362. BorderStyle = LineStyle.Double,
  363. };
  364. win.Border.Thickness.Top = 2;
  365. var rs = Application.Begin (win);
  366. bool firstIteration = false;
  367. ((FakeDriver)Application.Driver).SetBufferSize (width, 4);
  368. Application.RunIteration (ref rs, ref firstIteration);
  369. var expected = string.Empty;
  370. switch (width) {
  371. case 1:
  372. Assert.Equal (new Rect (0, 0, 1, 4), win.Frame);
  373. expected = @"
  374. ║";
  375. break;
  376. case 2:
  377. Assert.Equal (new Rect (0, 0, 2, 4), win.Frame);
  378. expected = @"
  379. ╔╗
  380. ║║
  381. ╚╝";
  382. break;
  383. case 3:
  384. Assert.Equal (new Rect (0, 0, 3, 4), win.Frame);
  385. expected = @"
  386. ╔═╗
  387. ║ ║
  388. ╚═╝";
  389. break;
  390. case 4:
  391. Assert.Equal (new Rect (0, 0, 4, 4), win.Frame);
  392. expected = @"
  393. ╒╕
  394. ╔╛╘╗
  395. ║ ║
  396. ╚══╝";
  397. break;
  398. case 5:
  399. Assert.Equal (new Rect (0, 0, 5, 4), win.Frame);
  400. expected = @"
  401. ╒═╕
  402. ╔╛1╘╗
  403. ║ ║
  404. ╚═══╝";
  405. break;
  406. case 6:
  407. Assert.Equal (new Rect (0, 0, 6, 4), win.Frame);
  408. expected = @"
  409. ╒══╕
  410. ╔╛12╘╗
  411. ║ ║
  412. ╚════╝";
  413. break;
  414. case 7:
  415. Assert.Equal (new Rect (0, 0, 7, 4), win.Frame);
  416. expected = @"
  417. ╒═══╕
  418. ╔╛123╘╗
  419. ║ ║
  420. ╚═════╝";
  421. break;
  422. case 8:
  423. Assert.Equal (new Rect (0, 0, 8, 4), win.Frame);
  424. expected = @"
  425. ╒════╕
  426. ╔╛1234╘╗
  427. ║ ║
  428. ╚══════╝";
  429. break;
  430. case 9:
  431. Assert.Equal (new Rect (0, 0, 9, 4), win.Frame);
  432. expected = @"
  433. ╒════╕
  434. ╔╛1234╘═╗
  435. ║ ║
  436. ╚═══════╝";
  437. break;
  438. case 10:
  439. Assert.Equal (new Rect (0, 0, 10, 4), win.Frame);
  440. expected = @"
  441. ╒════╕
  442. ╔╛1234╘══╗
  443. ║ ║
  444. ╚════════╝";
  445. break;
  446. }
  447. _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
  448. Application.End (rs);
  449. }
  450. [Theory, AutoInitShutdown]
  451. [InlineData (0)]
  452. [InlineData (1)]
  453. [InlineData (2)]
  454. [InlineData (3)]
  455. [InlineData (4)]
  456. [InlineData (5)]
  457. [InlineData (6)]
  458. [InlineData (7)]
  459. [InlineData (8)]
  460. [InlineData (9)]
  461. [InlineData (10)]
  462. public void Border_With_Title_Border_Double_Thickness_Top_Three_Size_Width (int width)
  463. {
  464. var win = new Window () {
  465. Title = "1234",
  466. Width = Dim.Fill (),
  467. Height = Dim.Fill (),
  468. BorderStyle = LineStyle.Double,
  469. };
  470. win.Border.Thickness.Top = 3;
  471. var rs = Application.Begin (win);
  472. bool firstIteration = false;
  473. ((FakeDriver)Application.Driver).SetBufferSize (width, 4);
  474. Application.RunIteration (ref rs, ref firstIteration);
  475. var expected = string.Empty;
  476. switch (width) {
  477. case 1:
  478. Assert.Equal (new Rect (0, 0, 1, 4), win.Frame);
  479. expected = @"
  480. ║";
  481. break;
  482. case 2:
  483. Assert.Equal (new Rect (0, 0, 2, 4), win.Frame);
  484. expected = @"
  485. ╔╗
  486. ║║
  487. ╚╝";
  488. break;
  489. case 3:
  490. Assert.Equal (new Rect (0, 0, 3, 4), win.Frame);
  491. expected = @"
  492. ╔═╗
  493. ║ ║
  494. ╚═╝";
  495. break;
  496. case 4:
  497. Assert.Equal (new Rect (0, 0, 4, 4), win.Frame);
  498. expected = @"
  499. ╒╕
  500. ╔╡╞╗
  501. ║╘╛║
  502. ╚══╝";
  503. break;
  504. case 5:
  505. Assert.Equal (new Rect (0, 0, 5, 4), win.Frame);
  506. expected = @"
  507. ╒═╕
  508. ╔╡1╞╗
  509. ║╘═╛║
  510. ╚═══╝";
  511. break;
  512. case 6:
  513. Assert.Equal (new Rect (0, 0, 6, 4), win.Frame);
  514. expected = @"
  515. ╒══╕
  516. ╔╡12╞╗
  517. ║╘══╛║
  518. ╚════╝";
  519. break;
  520. case 7:
  521. Assert.Equal (new Rect (0, 0, 7, 4), win.Frame);
  522. expected = @"
  523. ╒═══╕
  524. ╔╡123╞╗
  525. ║╘═══╛║
  526. ╚═════╝";
  527. break;
  528. case 8:
  529. Assert.Equal (new Rect (0, 0, 8, 4), win.Frame);
  530. expected = @"
  531. ╒════╕
  532. ╔╡1234╞╗
  533. ║╘════╛║
  534. ╚══════╝";
  535. break;
  536. case 9:
  537. Assert.Equal (new Rect (0, 0, 9, 4), win.Frame);
  538. expected = @"
  539. ╒════╕
  540. ╔╡1234╞═╗
  541. ║╘════╛ ║
  542. ╚═══════╝";
  543. break;
  544. case 10:
  545. Assert.Equal (new Rect (0, 0, 10, 4), win.Frame);
  546. expected = @"
  547. ╒════╕
  548. ╔╡1234╞══╗
  549. ║╘════╛ ║
  550. ╚════════╝";
  551. break;
  552. }
  553. _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
  554. Application.End (rs);
  555. }
  556. [Theory, AutoInitShutdown]
  557. [InlineData (0)]
  558. [InlineData (1)]
  559. [InlineData (2)]
  560. [InlineData (3)]
  561. [InlineData (4)]
  562. [InlineData (5)]
  563. [InlineData (6)]
  564. [InlineData (7)]
  565. [InlineData (8)]
  566. [InlineData (9)]
  567. [InlineData (10)]
  568. public void Border_With_Title_Border_Double_Thickness_Top_Four_Size_Width (int width)
  569. {
  570. var win = new Window () {
  571. Title = "1234",
  572. Width = Dim.Fill (),
  573. Height = Dim.Fill (),
  574. BorderStyle = LineStyle.Double,
  575. };
  576. win.Border.Thickness.Top = 4;
  577. var rs = Application.Begin (win);
  578. bool firstIteration = false;
  579. ((FakeDriver)Application.Driver).SetBufferSize (width, 5);
  580. Application.RunIteration (ref rs, ref firstIteration);
  581. var expected = string.Empty;
  582. switch (width) {
  583. case 1:
  584. Assert.Equal (new Rect (0, 0, 1, 5), win.Frame);
  585. expected = @"
  586. ║";
  587. break;
  588. case 2:
  589. Assert.Equal (new Rect (0, 0, 2, 5), win.Frame);
  590. expected = @"
  591. ╔╗
  592. ║║
  593. ╚╝";
  594. break;
  595. case 3:
  596. Assert.Equal (new Rect (0, 0, 3, 5), win.Frame);
  597. expected = @"
  598. ╔═╗
  599. ║ ║
  600. ╚═╝";
  601. break;
  602. case 4:
  603. Assert.Equal (new Rect (0, 0, 4, 5), win.Frame);
  604. expected = @"
  605. ╒╕
  606. ╔╡╞╗
  607. ║╘╛║
  608. ╚══╝";
  609. break;
  610. case 5:
  611. Assert.Equal (new Rect (0, 0, 5, 5), win.Frame);
  612. expected = @"
  613. ╒═╕
  614. ╔╡1╞╗
  615. ║╘═╛║
  616. ╚═══╝";
  617. break;
  618. case 6:
  619. Assert.Equal (new Rect (0, 0, 6, 5), win.Frame);
  620. expected = @"
  621. ╒══╕
  622. ╔╡12╞╗
  623. ║╘══╛║
  624. ╚════╝";
  625. break;
  626. case 7:
  627. Assert.Equal (new Rect (0, 0, 7, 5), win.Frame);
  628. expected = @"
  629. ╒═══╕
  630. ╔╡123╞╗
  631. ║╘═══╛║
  632. ╚═════╝";
  633. break;
  634. case 8:
  635. Assert.Equal (new Rect (0, 0, 8, 5), win.Frame);
  636. expected = @"
  637. ╒════╕
  638. ╔╡1234╞╗
  639. ║╘════╛║
  640. ╚══════╝";
  641. break;
  642. case 9:
  643. Assert.Equal (new Rect (0, 0, 9, 5), win.Frame);
  644. expected = @"
  645. ╒════╕
  646. ╔╡1234╞═╗
  647. ║╘════╛ ║
  648. ╚═══════╝";
  649. break;
  650. case 10:
  651. Assert.Equal (new Rect (0, 0, 10, 5), win.Frame);
  652. expected = @"
  653. ╒════╕
  654. ╔╡1234╞══╗
  655. ║╘════╛ ║
  656. ╚════════╝";
  657. break;
  658. }
  659. _ = TestHelpers.AssertDriverContentsWithFrameAre (expected, _output);
  660. Application.End (rs);
  661. }
  662. }