1
1
import components.*
2
- import models.StringEntity
3
2
import org.junit.Before
4
3
import org.junit.Test
5
4
import java.io.File
@@ -9,6 +8,7 @@ class SCTest {
9
8
10
9
private val logger by logger()
11
10
11
+ private val buildSuccess = " KotlinSample"
12
12
private val projectName = " KotlinSample"
13
13
private val mainModule = " app"
14
14
private val mainModuleTest = " $projectName${File .separator}$mainModule "
@@ -24,6 +24,11 @@ class SCTest {
24
24
cd $projectName
25
25
""" .trimIndent()
26
26
27
+ private val buildTask = """
28
+ cd $projectName
29
+ ${gradleWrapper()} build
30
+ """ .trimIndent()
31
+
27
32
// gradlew task needs export ANDROID_SDK_ROOT=/Users/efrainespada/Library/Android/sdk
28
33
// echo "sdk.dir=${System.getenv("ANDROID_SDK_ROOT")}" > local.properties &&
29
34
private val signingReportTask = """
@@ -37,50 +42,50 @@ class SCTest {
37
42
}
38
43
39
44
@Test
40
- fun `1 - terminal verification` () {
45
+ fun `01 - (PLUGIN) terminal verification` () {
41
46
" echo $extensionName " .runCommand { command, result ->
42
47
assert (command.contains(result.removeNewLines()))
43
48
}
44
49
}
45
50
46
51
@Test
47
- fun `2 - gradlew signingReport` () {
52
+ fun `02 - (PLUGIN) gradlew signingReport` () {
48
53
signingReportTask.runCommand { _, report ->
49
54
assert (report.contains(" SHA1" ) && report.contains(" BUILD SUCCESSFUL" ))
50
55
}
51
56
}
52
57
53
58
@Test
54
- fun `3 - fingerprint extraction` () {
59
+ fun `03 - (PLUGIN) fingerprint extraction` () {
55
60
signingReportTask.runCommand { _, report ->
56
61
assert (report.extractFingerprint().split(" :" ).size == 20 )
57
62
}
58
63
}
59
64
60
65
@Test
61
- fun `4 - locate string files for default configuration` () {
66
+ fun `04 - (PLUGIN) locate string files for default configuration` () {
62
67
prepareTask.runCommand { _, _ ->
63
68
assert (locateFiles(projectName, defaultConfig()).isNotEmpty())
64
69
}
65
70
}
66
71
67
72
@Test
68
- fun `5 - backup string files` () {
73
+ fun `05 - (PLUGIN) backup string files` () {
69
74
prepareTask.runCommand { _, _ ->
70
75
assert (backupFiles(projectName, defaultConfig()).isNotEmpty())
71
76
}
72
77
}
73
78
74
79
@Test
75
- fun `6 - restore string files` () {
80
+ fun `06 - (PLUGIN) restore string files` () {
76
81
prepareTask.runCommand { _, _ ->
77
82
assert (backupFiles(projectName, defaultConfig()).isNotEmpty())
78
83
assert (restoreFiles(projectName).isNotEmpty())
79
84
}
80
85
}
81
86
82
87
@Test
83
- fun `7 - xml parsing` () {
88
+ fun `07 - (PLUGIN) xml parsing` () {
84
89
prepareTask.runCommand { _, _ ->
85
90
val files = locateFiles(projectName, defaultConfig())
86
91
files.forEach {
@@ -91,7 +96,7 @@ class SCTest {
91
96
92
97
93
98
@Test
94
- fun `8 - obfuscate string values` () {
99
+ fun `08 - (PLUGIN) obfuscate string values` () {
95
100
signingReportTask.runCommand { _, report ->
96
101
val files = locateFiles(projectName, defaultConfig())
97
102
files.forEach { file ->
@@ -109,7 +114,7 @@ class SCTest {
109
114
}
110
115
111
116
@Test
112
- fun `9 - obfuscate and reveal string values` () {
117
+ fun `09 - (PLUGIN) obfuscate and reveal string values` () {
113
118
signingReportTask.runCommand { _, report ->
114
119
val files = locateFiles(projectName, defaultConfig())
115
120
files.forEach { file ->
@@ -136,10 +141,12 @@ class SCTest {
136
141
}
137
142
138
143
@Test
139
- fun `10 - obfuscate xml` () {
144
+ fun `10 - (PLUGIN) obfuscate xml` () {
140
145
signingReportTask.runCommand { _, report ->
141
146
val files = locateFiles(projectName, defaultConfig())
142
147
files.forEach { file ->
148
+ val entities = parseXML(file.file, mainModuleTest, true )
149
+ assert (entities.isNotEmpty())
143
150
modifyXML(file.file, mainModuleTest, report.extractFingerprint(), true )
144
151
}
145
152
val filesObfuscated = locateFiles(projectName, defaultConfig())
@@ -150,4 +157,24 @@ class SCTest {
150
157
}
151
158
}
152
159
160
+ @Test
161
+ fun `11 - (ANDROID COMPILATION) obfuscate xml and build (not real workflow)` () {
162
+ signingReportTask.runCommand { _, report ->
163
+ val files = locateFiles(projectName, defaultConfig())
164
+ files.forEach { file ->
165
+ val entities = parseXML(file.file, mainModuleTest, true )
166
+ assert (entities.isNotEmpty())
167
+ modifyXML(file.file, mainModuleTest, report.extractFingerprint(), true )
168
+ }
169
+ val filesObfuscated = locateFiles(projectName, defaultConfig())
170
+ filesObfuscated.forEach { file ->
171
+ val entities = parseXML(file.file, mainModuleTest, true )
172
+ assert (entities.isEmpty())
173
+ }
174
+ buildTask.runCommand { _, androidReport ->
175
+ assert (androidReport.contains(" BUILD SUCCESSFUL" ))
176
+ }
177
+ }
178
+ }
179
+
153
180
}
0 commit comments