Extract and propagate databinding information from imported aars.
#2694
RELNOTES: None
PiperOrigin-RevId: 309327526
diff --git a/tools/android/aar_resources_extractor_test.py b/tools/android/aar_resources_extractor_test.py
index 9ec3a99..4bb196a 100644
--- a/tools/android/aar_resources_extractor_test.py
+++ b/tools/android/aar_resources_extractor_test.py
@@ -113,6 +113,31 @@
with open("out_dir/assets/b", "r") as layout_xml:
self.assertEqual("some other asset", layout_xml.read())
+ def testDatabinding(self):
+ aar = zipfile.ZipFile(io.BytesIO(), "w")
+
+ br_filepath = (
+ "data-binding/com.android.databinding.library.baseAdapters--br.bin")
+ setter_store_filepath = (
+ "data-binding/" +
+ "com.android.databinding.library.baseAdapters--setter_store.json")
+
+ aar.writestr(br_filepath, "br data")
+ aar.writestr(setter_store_filepath, "setter store data")
+
+ os.makedirs("out_dir/br")
+ os.makedirs("out_dir/setter_store")
+
+ aar_resources_extractor.ExtractDatabinding(aar, "br.bin", "out_dir/br")
+ aar_resources_extractor.ExtractDatabinding(aar, "setter_store.json",
+ "out_dir/setter_store")
+
+ with open("out_dir/br/" + br_filepath, "r") as f:
+ self.assertEqual("br data", f.read())
+
+ with open("out_dir/setter_store/" + setter_store_filepath, "r") as f:
+ self.assertEqual("setter store data", f.read())
+
if __name__ == "__main__":
unittest.main()