Skip to content

Commit

Permalink
test: ProGuard setup CRLF support
Browse files Browse the repository at this point in the history
  • Loading branch information
vaind committed Jul 11, 2022
1 parent 40d9538 commit 0a86fe2
Showing 1 changed file with 19 additions and 4 deletions.
23 changes: 19 additions & 4 deletions test/Sentry.Unity.Editor.Tests/Android/ProguardSetupTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,18 +72,33 @@ public void AddsRuleFile(bool existsBefore)
}

[Test]
public void AddsRuleToGradleScript()
[TestCase("\n")]
[TestCase("\r\n")]
public void AddsRuleToGradleScript(string lineSeparator)
{
var gradleScript = Path.Combine(_outputPath, "build.gradle");
var regex = new Regex($"consumerProguardFiles .*, '{ProguardSetup.RuleFileName}'");

// Update the file to have the expected separators for this test case.
var linesBefore = File.ReadAllLines(gradleScript).Length;
File.WriteAllText(gradleScript, Regex.Replace(File.ReadAllText(gradleScript), "\r?\n", lineSeparator));

// Sanity check that the previous replacement worked.
StringAssert.Contains(lineSeparator, File.ReadAllText(gradleScript));
Assert.AreEqual(linesBefore, File.ReadAllLines(gradleScript).Length);

var sut = GetSut();

Assert.False(regex.Match(File.ReadAllText(gradleScript)).Success);
var regex = $"consumerProguardFiles [^\r\n]*, '{ProguardSetup.RuleFileName}'";
StringAssert.DoesNotMatch(regex, File.ReadAllText(gradleScript));

sut.AddToGradleProject();

Assert.True(regex.Match(File.ReadAllText(gradleScript)).Success);
var newContent = File.ReadAllText(gradleScript);
StringAssert.IsMatch(regex, newContent);

// Doesn't add again on the second run.
sut.AddToGradleProject();
Assert.AreEqual(File.ReadAllText(gradleScript), newContent);
}

[Test]
Expand Down

0 comments on commit 0a86fe2

Please sign in to comment.