row > column (24_24) > blurb. */ private static function section(): Block { $content = DiviFixtures::markup('stage3/library--library-abschnitt.html'); return LibraryContent::roots(LibraryContent::load(new Parser(), $content))[0]; } private static function blurbOf(Block $section): Block { return $section->children()[0]->children()[0]->children()[0]; } public function testAdminLabelsAndBuilderVersionDoNotCount(): void { $a = self::section(); $b = $a->copy(); $attrs = $b->attrs(); $attrs['module']['meta']['adminLabel']['desktop']['value'] = 'Anderes Label'; $attrs['builderVersion'] = '5.3.0'; $b->setAttrs($attrs); self::assertSame(16, strlen(Fingerprint::content($a))); self::assertSame(Fingerprint::content($a), Fingerprint::content($b)); self::assertSame(Fingerprint::structure($a), Fingerprint::structure($b)); } public function testOtherTextsKeepTheStructureButNotTheContent(): void { $a = self::section(); $b = $a->copy(); $blurb = self::blurbOf($b); $attrs = $blurb->attrs(); $attrs['title']['innerContent']['desktop']['value'] = 'Anderer Titel'; $blurb->setAttrs($attrs); self::assertSame(Fingerprint::structure($a), Fingerprint::structure($b)); self::assertNotSame(Fingerprint::content($a), Fingerprint::content($b)); } public function testColumnLayoutAndModuleTypesChangeTheStructure(): void { $a = self::section(); $b = $a->copy(); $column = $b->children()[0]->children()[0]; $attrs = $column->attrs(); $attrs['module']['decoration']['sizing']['desktop']['value']['flexType'] = '12_24'; $column->setAttrs($attrs); $c = Block::create('divi/section', [], [Block::create('divi/row', [], [Block::create('divi/column', [], [ Block::create('divi/text'), ])])]); self::assertNotSame(Fingerprint::structure($a), Fingerprint::structure($b)); self::assertNotSame(Fingerprint::structure($a), Fingerprint::structure($c)); } }