def _VerifyManifest(actual_manifest, expected_file, normalized_manifest, expected_manifest_base_expectation, unexpected_manifest_failure_file, fail_on_mismatch): with build_utils.AtomicOutput(normalized_manifest) as normalized_output: normalized_output.write(manifest_utils.NormalizeManifest(actual_manifest)) if expected_manifest_base_expectation: with tempfile.NamedTemporaryFile() as generated_diff: actual_diff_content = diff_utils.GenerateDiffWithOnlyAdditons( expected_manifest_base_expectation, normalized_manifest) generated_diff.write(actual_diff_content) generated_diff.flush() msg = diff_utils.DiffFileContents(expected_file, generated_diff.name) else: msg = diff_utils.DiffFileContents(expected_file, normalized_manifest) if not msg: return msg_header = """\ AndroidManifest.xml expectations file needs updating. For details see: https://chromium.googlesource.com/chromium/src/+/HEAD/chrome/android/java/README.md """ sys.stderr.write(msg_header) sys.stderr.write(msg) if unexpected_manifest_failure_file: build_utils.MakeDirectory(os.path.dirname(unexpected_manifest_failure_file)) with open(unexpected_manifest_failure_file, 'w') as f: f.write(msg_header) f.write(msg) if fail_on_mismatch: sys.exit(1)
def _CreateNormalizedManifestForVerification(options): with build_utils.TempDir() as tempdir: fixed_manifest, _ = _FixManifest( options, tempdir, extra_manifest=options.extra_verification_manifest) with open(fixed_manifest) as f: return manifest_utils.NormalizeManifest(f.read())
def testNormalizeManifest_nameNotUsedForIntentFilter(self): test_manifest, expected = _CreateTestData( extra_intent_filter_elem='<a/>', intent_filter_diff_anchor='5f5c8a70') actual = manifest_utils.NormalizeManifest(test_manifest) # Checks that the DIFF-ANCHOR does change with the added element despite # having a nested element with an android:name set. self.assertMultiLineEqual(expected, actual)
def _VerifyManifest(actual_manifest, expected_manifest, normalized_manifest, fail_if_unexpected_manifest): with build_utils.AtomicOutput(normalized_manifest) as normalized_output: normalized_output.write(manifest_utils.NormalizeManifest(actual_manifest)) msg = diff_utils.DiffFileContents(expected_manifest, normalized_manifest) if msg: sys.stderr.write("""\ AndroidManifest.xml expectations file needs updating. For details see: https://chromium.googlesource.com/chromium/src/+/HEAD/chrome/android/java/README.md """) sys.stderr.write(msg) if fail_if_unexpected_manifest: sys.exit(1)
def _VerifyManifest(actual_manifest, expected_manifest, normalized_manifest, unexpected_manifest_failure_file): with build_utils.AtomicOutput(normalized_manifest) as normalized_output: normalized_output.write(manifest_utils.NormalizeManifest(actual_manifest)) msg = diff_utils.DiffFileContents(expected_manifest, normalized_manifest) if not msg: return msg_header = """\ AndroidManifest.xml expectations file needs updating. For details see: https://chromium.googlesource.com/chromium/src/+/HEAD/chrome/android/java/README.md """ sys.stderr.write(msg_header) sys.stderr.write(msg) if unexpected_manifest_failure_file: build_utils.MakeDirectory(os.path.dirname(unexpected_manifest_failure_file)) with open(unexpected_manifest_failure_file, 'w') as f: f.write(msg_header) f.write(msg)
def _CreateNormalizedManifest(options): with build_utils.TempDir() as tempdir: fixed_manifest, _ = _FixManifest(options, tempdir) with open(fixed_manifest) as f: return manifest_utils.NormalizeManifest(f.read())
def testNormalizeManifest_nameUsedForActivity(self): test_manifest, expected = _CreateTestData(extra_activity_attr='a="b"') actual = manifest_utils.NormalizeManifest(test_manifest) # Checks that the DIFF-ANCHOR does not change with the added attribute. self.assertMultiLineEqual(expected, actual)
def testNormalizeManifest_golden(self): test_manifest, expected = _CreateTestData() actual = manifest_utils.NormalizeManifest(test_manifest) self.assertMultiLineEqual(expected, actual)