1442
test_cmp expected actual
1443
'
1444
1445
+test_expect_success 'zebra alternate color is only used when necessary' '
1446
+ cat >old.txt <<-\EOF &&
1447
+ line 1A should be marked as oldMoved newMovedAlternate
1448
+ line 1B should be marked as oldMoved newMovedAlternate
1449
+ unchanged
1450
+ line 2A should be marked as oldMoved newMovedAlternate
1451
+ line 2B should be marked as oldMoved newMovedAlternate
1452
+ line 3A should be marked as oldMovedAlternate newMoved
1453
+ line 3B should be marked as oldMovedAlternate newMoved
1454
+ unchanged
1455
+ line 4A should be marked as oldMoved newMovedAlternate
1456
+ line 4B should be marked as oldMoved newMovedAlternate
1457
+ line 5A should be marked as oldMovedAlternate newMoved
1458
+ line 5B should be marked as oldMovedAlternate newMoved
1459
+ line 6A should be marked as oldMoved newMoved
1460
+ line 6B should be marked as oldMoved newMoved
1461
+ EOF
1462
+ cat >new.txt <<-\EOF &&
1463
+ line 1A should be marked as oldMoved newMovedAlternate
1464
+ line 1B should be marked as oldMoved newMovedAlternate
1465
+ unchanged
1466
+ line 3A should be marked as oldMovedAlternate newMoved
1467
+ line 3B should be marked as oldMovedAlternate newMoved
1468
+ line 2A should be marked as oldMoved newMovedAlternate
1469
+ line 2B should be marked as oldMoved newMovedAlternate
1470
+ unchanged
1471
+ line 6A should be marked as oldMoved newMoved
1472
+ line 6B should be marked as oldMoved newMoved
1473
+ line 4A should be marked as oldMoved newMovedAlternate
1474
+ line 4B should be marked as oldMoved newMovedAlternate
1475
+ line 5A should be marked as oldMovedAlternate newMoved
1476
+ line 5B should be marked as oldMovedAlternate newMoved
1477
+ EOF
1478
+ test_expect_code 1 git diff --no-index --color --color-moved=zebra \
1479
+ --color-moved-ws=allow-indentation-change \
1480
+ old.txt new.txt >output &&
1481
+ grep -v index output | test_decode_color >actual &&
1482
+ cat >expected <<-\EOF &&
1483
+ <BOLD>diff --git a/old.txt b/new.txt<RESET>
1484
+ <BOLD>--- a/old.txt<RESET>
1485
+ <BOLD>+++ b/new.txt<RESET>
1486
+ <CYAN>@@ -1,14 +1,14 @@<RESET>
1487
+ <BOLD;MAGENTA>-line 1A should be marked as oldMoved newMovedAlternate<RESET>
1488
+ <BOLD;MAGENTA>-line 1B should be marked as oldMoved newMovedAlternate<RESET>
1489
+ <BOLD;CYAN>+<RESET><BOLD;CYAN> line 1A should be marked as oldMoved newMovedAlternate<RESET>
1490
+ <BOLD;CYAN>+<RESET><BOLD;CYAN> line 1B should be marked as oldMoved newMovedAlternate<RESET>
1491
+ unchanged<RESET>
1492
+ <BOLD;MAGENTA>-line 2A should be marked as oldMoved newMovedAlternate<RESET>
1493
+ <BOLD;MAGENTA>-line 2B should be marked as oldMoved newMovedAlternate<RESET>
1494
+ <BOLD;BLUE>-line 3A should be marked as oldMovedAlternate newMoved<RESET>
1495
+ <BOLD;BLUE>-line 3B should be marked as oldMovedAlternate newMoved<RESET>
1496
+ <BOLD;CYAN>+<RESET><BOLD;CYAN> line 3A should be marked as oldMovedAlternate newMoved<RESET>
1497
+ <BOLD;CYAN>+<RESET><BOLD;CYAN> line 3B should be marked as oldMovedAlternate newMoved<RESET>
1498
+ <BOLD;YELLOW>+<RESET><BOLD;YELLOW> line 2A should be marked as oldMoved newMovedAlternate<RESET>
1499
+ <BOLD;YELLOW>+<RESET><BOLD;YELLOW> line 2B should be marked as oldMoved newMovedAlternate<RESET>
1500
+ unchanged<RESET>
1501
+ <BOLD;MAGENTA>-line 4A should be marked as oldMoved newMovedAlternate<RESET>
1502
+ <BOLD;MAGENTA>-line 4B should be marked as oldMoved newMovedAlternate<RESET>
1503
+ <BOLD;BLUE>-line 5A should be marked as oldMovedAlternate newMoved<RESET>
1504
+ <BOLD;BLUE>-line 5B should be marked as oldMovedAlternate newMoved<RESET>
1505
+ <BOLD;MAGENTA>-line 6A should be marked as oldMoved newMoved<RESET>
1506
+ <BOLD;MAGENTA>-line 6B should be marked as oldMoved newMoved<RESET>
1507
+ <BOLD;CYAN>+<RESET><BOLD;CYAN> line 6A should be marked as oldMoved newMoved<RESET>
1508
+ <BOLD;CYAN>+<RESET><BOLD;CYAN> line 6B should be marked as oldMoved newMoved<RESET>
1509
+ <BOLD;YELLOW>+<RESET><BOLD;YELLOW> line 4A should be marked as oldMoved newMovedAlternate<RESET>
1510
+ <BOLD;YELLOW>+<RESET><BOLD;YELLOW> line 4B should be marked as oldMoved newMovedAlternate<RESET>
1511
+ <BOLD;CYAN>+<RESET><BOLD;CYAN> line 5A should be marked as oldMovedAlternate newMoved<RESET>
1512
+ <BOLD;CYAN>+<RESET><BOLD;CYAN> line 5B should be marked as oldMovedAlternate newMoved<RESET>
1513
+ EOF
1514
+ test_cmp expected actual
1515
+'
1516
+
1517
test_expect_success 'cmd option assumes configured colored-moved' '
1518
test_config color.diff.oldMoved "magenta" &&
1519
test_config color.diff.newMoved "cyan" &&