)]}'
{
  "commit": "ee41c636fa82bd51ccbbbd91308266d7853da027",
  "tree": "b316a6d14dc299a4186d599838bf8690bf2beb55",
  "parents": [
    "f53cc85d4dce4f2ae574dfdf0e2aec3acbc86f7e"
  ],
  "author": {
    "name": "xfce0",
    "email": "73785960+xfce0@users.noreply.github.com",
    "time": "Fri Apr 03 20:55:26 2026 +0300"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Apr 03 17:55:26 2026 +0000"
  },
  "message": "Remove live_text_utils cross-imports from material and cupertino tests (#184517)\n\nRemove cross-directory test imports of `live_text_utils.dart` from\nmaterial and cupertino tests.\n\nPart of #182636.\n\n`LiveTextInputTester` is a small (75-line) test utility with a trivial\nimplementation, so duplication is the appropriate strategy per the issue\nguidelines. The file is copied into `test/material/` and\n`test/cupertino/`, and all 4 imports are updated to reference the local\ncopies.\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [AI contribution guidelines] and understand my\nresponsibilities, or I am not using AI tools.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide], including [Features\nwe expect every widget to implement].\n- [x] I signed the [CLA].\n- [x] I listed at least one issue that this PR fixes in the description\nabove.\n- [x] I updated/added relevant documentation (doc comments with `///`).\n- [x] I added new tests to check the change I am making, or this PR is\n[test-exempt].\n- [x] I followed the [breaking change policy] and added [Data Driven\nFixes] where supported.\n- [x] All existing and new tests are passing.\n\n\n\u003c!-- Links --\u003e\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview\n[AI contribution guidelines]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines\n[Tree Hygiene]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md\n[test-exempt]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md\n[Features we expect every widget to implement]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement\n[CLA]: https://cla.developers.google.com/\n[flutter/tests]: https://github.com/flutter/tests\n[breaking change policy]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes\n[Discord]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md\n[Data Driven Fixes]:\nhttps://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5b280517eaa993fcd9a3903fdf3beab6e9d33d5c",
      "old_mode": 33188,
      "old_path": "packages/flutter/test/cupertino/adaptive_text_selection_toolbar_test.dart",
      "new_id": "2eed7b8aa5f42370ba03ed292eeba58e315be484",
      "new_mode": 33188,
      "new_path": "packages/flutter/test/cupertino/adaptive_text_selection_toolbar_test.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1e19a41ba76bf2a4db774010b88057c3b702f3e7",
      "new_mode": 33188,
      "new_path": "packages/flutter/test/cupertino/live_text_utils.dart"
    },
    {
      "type": "modify",
      "old_id": "c3ccce77b19baf6f81fc3ca0bd887c22d97ee796",
      "old_mode": 33188,
      "old_path": "packages/flutter/test/cupertino/text_field_test.dart",
      "new_id": "5b21451d4248c1e0b0841d59a8ab82e95b312e8f",
      "new_mode": 33188,
      "new_path": "packages/flutter/test/cupertino/text_field_test.dart"
    },
    {
      "type": "modify",
      "old_id": "9536343b9629e41e80fea52d5591a4c6d016010f",
      "old_mode": 33188,
      "old_path": "packages/flutter/test/material/adaptive_text_selection_toolbar_test.dart",
      "new_id": "0ce6a50a5c26c53e5adf4197cd91cac7bd89463f",
      "new_mode": 33188,
      "new_path": "packages/flutter/test/material/adaptive_text_selection_toolbar_test.dart"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1e19a41ba76bf2a4db774010b88057c3b702f3e7",
      "new_mode": 33188,
      "new_path": "packages/flutter/test/material/live_text_utils.dart"
    },
    {
      "type": "modify",
      "old_id": "38cc810bb3522e8ef9d1bdeeb654d8f68813fdcf",
      "old_mode": 33188,
      "old_path": "packages/flutter/test/material/text_field_test.dart",
      "new_id": "572318acf9d471b058a7f79248796ee2541fee12",
      "new_mode": 33188,
      "new_path": "packages/flutter/test/material/text_field_test.dart"
    }
  ]
}
