View | Details | Raw Unified | Return to bug 32950
Collapse All | Expand All

(-)a/t/SimpleMARC.t (-2 / +49 lines)
Lines 1334-1340 subtest 'copy_and_replace_field' => sub { Link Here
1334
subtest 'move_field' => sub {
1334
subtest 'move_field' => sub {
1335
    plan tests => 2;
1335
    plan tests => 2;
1336
    subtest 'move subfield' => sub {
1336
    subtest 'move subfield' => sub {
1337
        plan tests => 7;
1337
        plan tests => 9;
1338
        my $record = new_record;
1338
        my $record = new_record;
1339
        my ( @fields_952d, @fields_952c, @fields_954c, @fields_954p );
1339
        my ( @fields_952d, @fields_952c, @fields_954c, @fields_954p );
1340
        $record->append_fields(
1340
        $record->append_fields(
Lines 1414-1419 subtest 'move_field' => sub { Link Here
1414
            \@fields_9999, [],
1414
            \@fields_9999, [],
1415
            'move a nonexistent subfield does not create a new one'
1415
            'move a nonexistent subfield does not create a new one'
1416
        );
1416
        );
1417
1418
        # Test for bug 32950: Moving subfield can lose values for repeatable fields
1419
        $record = new_record;
1420
        $record->append_fields(
1421
            MARC::Field->new(
1422
                '020', ' ', ' ',
1423
                a => '123456789',
1424
                z => '987654321',
1425
            ),
1426
            MARC::Field->new(
1427
                '020', ' ', ' ',
1428
                a => '111111111',
1429
                z => '222222222',
1430
            ),
1431
            MARC::Field->new(
1432
                '020', ' ', ' ',
1433
                a => '333333333',
1434
                z => '444444444',
1435
            ),
1436
            MARC::Field->new(
1437
                '024', ' ', ' ',
1438
                a => 'existing1',
1439
            ),
1440
            MARC::Field->new(
1441
                '024', ' ', ' ',
1442
                a => 'existing2',
1443
            ),
1444
        );
1445
1446
        # Test moving to a different field to reproduce the bug more clearly
1447
        move_field(
1448
            {
1449
                record        => $record,
1450
                from_field    => '020',
1451
                from_subfield => 'z',
1452
                to_field      => '024',
1453
                to_subfield   => 'a'
1454
            }
1455
        );
1456
1457
        my @fields_020z = read_field( { record => $record, field => '020', subfield => 'z' } );
1458
        my @fields_024a = read_field( { record => $record, field => '024', subfield => 'a' } );
1459
        is_deeply( \@fields_020z, [], 'All 020$z subfields have been moved' );
1460
        is_deeply(
1461
            \@fields_024a,
1462
            [ '987654321', '222222222', '444444444' ],
1463
            'Bug 32950: Move preserves values correctly in repeatable fields'
1464
        );
1417
    };
1465
    };
1418
1466
1419
    subtest 'move field' => sub {
1467
    subtest 'move field' => sub {
1420
- 

Return to bug 32950