@@ -3656,6 +3656,95 @@ UTEST( UIHTML, RedditHeaderPagenameBottomAlign ) {
36563656 Engine::destroySingleton ();
36573657}
36583658
3659+ UTEST ( UIHTML , PaddedHeaderWithNestedFloatsDoesNotOverlapClearedMain ) {
3660+ auto win = Engine::instance ()->createWindow (
3661+ WindowSettings ( 1024 , 653 , " padded header nested floats" , WindowStyle::Default,
3662+ WindowBackend::Default, 32 , {}, 1 , false , true ),
3663+ ContextSettings ( false , 0 , 0 , GLv_default, true , false ) );
3664+ FileSystem::changeWorkingDirectory ( Sys::getProcessPath () );
3665+
3666+ UI ::UISceneNode* sceneNode = init_test_inline_block ();
3667+ sceneNode->loadLayoutFromString ( HTMLFormatter::HTMLtoXML ( R"html(
3668+ <html>
3669+ <head>
3670+ <style>
3671+ #header {
3672+ padding: 30px 0 0 0;
3673+ width: 940px;
3674+ }
3675+ #masthead {
3676+ width: 940px;
3677+ }
3678+ #branding {
3679+ float: left;
3680+ width: 940px;
3681+ height: 267px;
3682+ }
3683+ #access {
3684+ display: block;
3685+ float: left;
3686+ width: 940px;
3687+ }
3688+ #access ul {
3689+ list-style: none;
3690+ margin: 0;
3691+ padding: 0;
3692+ }
3693+ #access li {
3694+ float: left;
3695+ }
3696+ #access a {
3697+ display: block;
3698+ line-height: 38px;
3699+ padding: 0 10px;
3700+ }
3701+ #main {
3702+ clear: both;
3703+ padding: 40px 0 0 0;
3704+ width: 940px;
3705+ }
3706+ </style>
3707+ </head>
3708+ <body>
3709+ <div id="header">
3710+ <div id="masthead">
3711+ <div id="branding"></div>
3712+ <div id="access">
3713+ <ul>
3714+ <li><a>Home</a></li>
3715+ </ul>
3716+ </div>
3717+ </div>
3718+ </div>
3719+ <div id="main"></div>
3720+ </body>
3721+ </html>
3722+ )html" ) );
3723+ win->getInput ()->update ();
3724+ SceneManager::instance ()->update ();
3725+ sceneNode->updateDirtyLayouts ();
3726+
3727+ auto * header = sceneNode->getRoot ()->find ( " header" )->asType <UIHTMLWidget>();
3728+ auto * main = sceneNode->getRoot ()->find ( " main" )->asType <UIHTMLWidget>();
3729+ auto * branding = sceneNode->getRoot ()->find ( " branding" )->asType <UIHTMLWidget>();
3730+ auto * access = sceneNode->getRoot ()->find ( " access" )->asType <UIHTMLWidget>();
3731+ ASSERT_TRUE ( header != nullptr );
3732+ ASSERT_TRUE ( main != nullptr );
3733+ ASSERT_TRUE ( branding != nullptr );
3734+ ASSERT_TRUE ( access != nullptr );
3735+
3736+ const Float headerBottom =
3737+ header->convertToWorldSpace ( { 0 , 0 } ).y + header->getPixelsSize ().getHeight ();
3738+ const Float mainTop = main->convertToWorldSpace ( { 0 , 0 } ).y ;
3739+
3740+ EXPECT_GE ( header->getPixelsSize ().getHeight (), header->getPixelsContentOffset ().Top +
3741+ branding->getPixelsSize ().getHeight () +
3742+ access->getPixelsSize ().getHeight () );
3743+ EXPECT_GE ( mainTop + 0 .5f , headerBottom );
3744+
3745+ Engine::destroySingleton ();
3746+ }
3747+
36593748UTEST ( UIHTML , AnchorsSizing ) {
36603749 auto win = Engine::instance ()->createWindow (
36613750 WindowSettings ( 1024 , 653 , " anchors sizing" , WindowStyle::Default, WindowBackend::Default,
0 commit comments