)]}'
{
  "commit": "e19db89a0e855492afe3471b83faf0ddf611bd88",
  "tree": "6fd695084f4c40586e70050aa7e291011df788b4",
  "parents": [
    "dedd180f9f2aa5e02b0a871108fcc38991f5da44"
  ],
  "author": {
    "name": "Todd Volkert",
    "email": "tvolkert@users.noreply.github.com",
    "time": "Mon Apr 30 10:35:56 2018 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Apr 30 10:35:56 2018 -0700"
  },
  "message": "Add basic support for golden image file testing (#17094)\n\n* Add a `matchesGoldenFile()` async matcher that will match\r\n  a finder\u0027s widget\u0027s rasterized image against a golden file.\r\n* Add support for pluggable image comparison backends\r\n* Add a default backend that does simplistic PNG byte\r\n  comparison on locally stored golden files.\r\n* Add support for `flutter test --update-goldens`, which will\r\n  treat the rasterized image bytes produced during the test\r\n  as the new golden bytes and update the golden file accordingly\r\n\r\nStill TODO:\r\n\r\n* Add support for the `flutter_test_config.dart` test config hook\r\n* Utilize `flutter_test_config.dart` in `packages/flutter/test`\r\n  to install a backend that retrieves golden files from a dedicated\r\n  `flutter/goldens` repo\r\n\r\nhttps://github.com/flutter/flutter/issues/16859",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a435e89221aa7fd87246795d3c5de676848eb33e",
      "old_mode": 33188,
      "old_path": "dev/tools/vitool/pubspec.yaml",
      "new_id": "aa03baa0f8bda668670cf1c01294b477d47d1bea",
      "new_mode": 33188,
      "new_path": "dev/tools/vitool/pubspec.yaml"
    },
    {
      "type": "modify",
      "old_id": "73a89d0550511a4c42e33afa789da898684be645",
      "old_mode": 33188,
      "old_path": "dev/tools/vitool/test/vitool_test.dart",
      "new_id": "d25f741a7d5a5c1321753c35508cde703f9dd223",
      "new_mode": 33188,
      "new_path": "dev/tools/vitool/test/vitool_test.dart"
    },
    {
      "type": "modify",
      "old_id": "02f53703dea388d689783ae1830b29449d465f5c",
      "old_mode": 33188,
      "old_path": "packages/flutter_test/lib/flutter_test.dart",
      "new_id": "cd52e748441dd406efddc26816cf569ed69ae809",
      "new_mode": 33188,
      "new_path": "packages/flutter_test/lib/flutter_test.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4e99e782443eab688ac7cd9214dc0ad0cee6ac5b",
      "new_mode": 33188,
      "new_path": "packages/flutter_test/lib/src/goldens.dart"
    },
    {
      "type": "modify",
      "old_id": "c6b4b52a5625bc28efdc67b97ac1129906bde993",
      "old_mode": 33188,
      "old_path": "packages/flutter_test/lib/src/matchers.dart",
      "new_id": "d4df942030feb92f77787ac9997f021d985228fe",
      "new_mode": 33188,
      "new_path": "packages/flutter_test/lib/src/matchers.dart"
    },
    {
      "type": "modify",
      "old_id": "2998e969bee6182d25e7c0cc2683ad9693ca2d66",
      "old_mode": 33188,
      "old_path": "packages/flutter_test/pubspec.yaml",
      "new_id": "8e39c6a555b5ba9697c5f9ce565ece4f338cec54",
      "new_mode": 33188,
      "new_path": "packages/flutter_test/pubspec.yaml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7266815705cfaa9809721a97339029a961936588",
      "new_mode": 33188,
      "new_path": "packages/flutter_test/test/goldens_test.dart"
    },
    {
      "type": "modify",
      "old_id": "1fd404e45fff8d74eebcbc4644787ca4715ed7eb",
      "old_mode": 33188,
      "old_path": "packages/flutter_test/test/matchers_test.dart",
      "new_id": "39d36495ca0c8452511342e0ce1e6d16586ac121",
      "new_mode": 33188,
      "new_path": "packages/flutter_test/test/matchers_test.dart"
    },
    {
      "type": "modify",
      "old_id": "bf78e74d65024840fcd77e23d7bf4ea91b469487",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/commands/test.dart",
      "new_id": "88ea238499ab0c2b26b772341e9962c8cded2e6e",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/commands/test.dart"
    },
    {
      "type": "modify",
      "old_id": "32753f2848fad83f1de7985f2798a8bc99a9ac48",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/test/flutter_platform.dart",
      "new_id": "14274638ebcfd4f4b449299fb091c5df4987484e",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/test/flutter_platform.dart"
    },
    {
      "type": "modify",
      "old_id": "0848a6e4c7d01e843fc2e1b76e8b213b4541e2c1",
      "old_mode": 33188,
      "old_path": "packages/flutter_tools/lib/src/test/runner.dart",
      "new_id": "ea6f9c8c4e513c9637e28c304d6560f71b5870df",
      "new_mode": 33188,
      "new_path": "packages/flutter_tools/lib/src/test/runner.dart"
    }
  ]
}
