File
 
   - core/modules/layout/tests/layout.test, line 2761
- Tests for the Layout module.
Class
  
  - LayoutCloneTest 
- Tests the interface for adding, removing, and moving blocks.
Code
function testLayoutClone() {
    $edit = array(
    'title' => 'Test layout 1',
    'name' => 'test_layout_1',
    'layout_template' => 'boxton',
    'path' => 'test-layout-1',
  );
  $this->backdropPost('admin/structure/layouts/add', $edit, t('Create layout'));
    $test_layout_1 = layout_load('test_layout_1');
  $test_layout_1->addBlock('layout_test', 'foo', 'content');
  $test_layout_1->addBlock('layout_test', 'foo', 'sidebar');
  $test_layout_1->save();
    $edit = array(
    'title' => 'Test layout 2',
    'name' => 'test_layout_2',
  );
  $this->backdropPost('admin/structure/layouts/manage/test_layout_1/clone', $edit, t('Clone layout'));
  $success_message = t('Cloned layout @title created. You may now configure the cloned layout.', array('@title' => 'Test layout 2'));
  $this->assertRaw($success_message);
  $edit = array(
    'path' => 'test-layout-2',
  );
  $this->backdropPost(NULL, $edit, t('Save layout'));
  $this->backdropGet('admin/structure/layouts');
  $this->assertRaw('test_layout_1');
  $this->assertRaw('test_layout_2');
  $this->backdropGet('test-layout-1');
  $this->assertResponse(200);
  $this->assertRaw('Foo subject', 'Testing block is present on original layout');
  $this->backdropGet('test-layout-2');
  $this->assertRaw('Foo subject', 'Testing block is present on cloned layout.');
  $this->assertResponse(200);
}