Commit a71337b8 authored by alexpott's avatar alexpott

Issue #3045211 by nlisgo, yogeshmpawar, Nebel54, heddn, quietone: Prevent link...

Issue #3045211 by nlisgo, yogeshmpawar, Nebel54, heddn, quietone: Prevent link field migration from creating invalid link attributes
parent 070e49b1
......@@ -119,7 +119,9 @@ public function transform($value, MigrateExecutableInterface $migrate_executable
$attributes = unserialize($attributes);
}
if (!$attributes) {
// In rare cases Drupal 6/7 link attributes are triple serialized. To avoid
// further problems with them we set them to an empty array in this case.
if (!is_array($attributes)) {
$attributes = [];
}
......
......@@ -89,4 +89,27 @@ public function canonicalizeUriDataProvider() {
];
}
/**
* Test the attributes that are deeply serialized are discarded.
*/
public function testCanonicalizeUriSerialized() {
$link_plugin = new FieldLink([], '', [], $this->getMock(MigrationInterface::class));
$migrate_executable = $this->getMock(MigrateExecutableInterface::class);
$row = new Row();
$transformed = $link_plugin->transform([
'url' => '',
'title' => '',
'attributes' => serialize(serialize(['not too deep'])),
], $migrate_executable, $row, NULL);
$this->assertEquals(['not too deep'], $transformed['options']['attributes']);
$transformed = $link_plugin->transform([
'url' => '',
'title' => '',
'attributes' => serialize(serialize(serialize(['too deep']))),
], $migrate_executable, $row, NULL);
$this->assertEmpty($transformed['options']['attributes']);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment