1
+ import com.google.common.io.Files
1
2
import components.*
2
3
import org.junit.Before
3
4
import org.junit.Test
5
+ import utils.modifyForTest
4
6
import java.io.File
7
+ import java.util.*
5
8
6
9
class SCTest {
7
10
@@ -21,48 +24,59 @@ class SCTest {
21
24
22
25
@Test
23
26
fun `02 - (PLUGIN) gradlew signingReport` () {
24
- signingReportTask.runCommand { _, report ->
27
+ val temp = Files .createTempDir()
28
+ signingReportTask(temp.absolutePath).runCommand { _, report ->
25
29
assert (report.contains(" SHA1" ) && report.contains(" BUILD SUCCESSFUL" ))
26
30
}
27
31
}
28
32
29
33
@Test
30
34
fun `03 - (PLUGIN) fingerprint extraction` () {
31
- signingReportTask.runCommand { _, report ->
35
+ val temp = Files .createTempDir()
36
+ signingReportTask(temp.absolutePath).runCommand { _, report ->
32
37
assert (report.extractFingerprint().split(" :" ).size == 20 )
33
38
}
34
39
}
35
40
36
41
@Test
37
42
fun `04 - (PLUGIN) locate string files for default configuration` () {
38
- prepareTask.runCommand { _, _ ->
39
- assert (locateFiles(testProjectName, defaultConfig()).isNotEmpty())
43
+ val temp = Files .createTempDir()
44
+ prepareTask(temp.absolutePath).runCommand { _, _ ->
45
+ assert (locateFiles(" ${temp.absolutePath}${File .separator}$testProjectName " , defaultConfig()).isNotEmpty())
40
46
}
41
47
}
42
48
43
49
@Test
44
50
fun `05 - (PLUGIN) backup string files` () {
45
- prepareTask.runCommand { _, _ ->
46
- assert (backupFiles(testProjectName, defaultConfig()).isNotEmpty())
51
+ val temp = Files .createTempDir()
52
+ prepareTask(temp.absolutePath).runCommand { _, _ ->
53
+ assert (backupFiles(" ${temp.absolutePath}${File .separator}$testProjectName " , defaultConfig()).isNotEmpty())
47
54
}
48
55
}
49
56
50
57
@Test
51
58
fun `06 - (PLUGIN) restore string files` () {
52
- prepareTask.runCommand { _, _ ->
53
- assert (restoreFiles(testProjectName, defaultMainModule).isEmpty())
54
- assert (backupFiles(testProjectName, defaultConfig().apply {
55
- stringFiles.add(" strings_extra.xml" )
56
- srcFolders.add(" src${File .separator} other_source" )
57
- }).isNotEmpty())
58
- assert (restoreFiles(testProjectName, defaultMainModule).isNotEmpty())
59
+ val temp = Files .createTempDir()
60
+ prepareTask(temp.absolutePath).runCommand { _, _ ->
61
+ assert (
62
+ restoreFiles(" ${temp.absolutePath}${File .separator}$testProjectName " , defaultMainModule).isEmpty()
63
+ )
64
+ assert (
65
+ backupFiles(" ${temp.absolutePath}${File .separator}$testProjectName " , defaultConfig().apply {
66
+ stringFiles.add(" strings_extra.xml" )
67
+ srcFolders.add(" src${File .separator} other_source" )
68
+ }).isNotEmpty())
69
+ assert (
70
+ restoreFiles(" ${temp.absolutePath}${File .separator}$testProjectName " , defaultMainModule).isNotEmpty()
71
+ )
59
72
}
60
73
}
61
74
62
75
@Test
63
76
fun `07 - (PLUGIN) xml parsing` () {
64
- prepareTask.runCommand { _, _ ->
65
- val files = locateFiles(testProjectName, defaultConfig())
77
+ val temp = Files .createTempDir()
78
+ prepareTask(temp.absolutePath).runCommand { _, _ ->
79
+ val files = locateFiles(" ${temp.absolutePath}${File .separator}$testProjectName " , defaultConfig())
66
80
files.forEach {
67
81
assert (parseXML(it.file).isNotEmpty())
68
82
}
@@ -71,15 +85,16 @@ class SCTest {
71
85
72
86
@Test
73
87
fun `08 - (PLUGIN) obfuscate string values` () {
74
- signingReportTask.runCommand { _, report ->
88
+ val temp = Files .createTempDir()
89
+ signingReportTask(temp.absolutePath).runCommand { _, report ->
75
90
val key = report.extractFingerprint()
76
91
assert (key.isNotEmpty())
77
- val files = locateFiles(testProjectName, defaultConfig())
92
+ val files = locateFiles(" ${temp.absolutePath}${ File .separator}$ testProjectName" , defaultConfig())
78
93
files.forEach { file ->
79
94
val entities = parseXML(file.file)
80
95
entities.forEach { entity ->
81
96
val obfuscated = obfuscate(
82
- mainModuleTest,
97
+ " ${temp.absolutePath}${ File .separator}$ mainModuleTest" ,
83
98
key,
84
99
entity
85
100
)
@@ -91,25 +106,26 @@ class SCTest {
91
106
92
107
@Test
93
108
fun `09 - (PLUGIN) obfuscate and reveal string values` () {
94
- signingReportTask.runCommand { _, report ->
109
+ val temp = Files .createTempDir()
110
+ signingReportTask(temp.absolutePath).runCommand { _, report ->
95
111
val key = report.extractFingerprint()
96
112
assert (key.isNotEmpty())
97
- val files = locateFiles(testProjectName, defaultConfig().apply {
113
+ val files = locateFiles(" ${temp.absolutePath}${ File .separator}$ testProjectName" , defaultConfig().apply {
98
114
stringFiles.add(" strings_extra.xml" )
99
115
srcFolders.add(" src${File .separator} other_source" )
100
116
})
101
117
files.forEach { file ->
102
118
val entities = parseXML(file.file)
103
119
entities.forEach { entity ->
104
120
val obfuscated = obfuscate(
105
- mainModuleTest,
121
+ " ${temp.absolutePath}${ File .separator}$ mainModuleTest" ,
106
122
key,
107
123
entity
108
124
)
109
125
assert (obfuscated.value != entity.value)
110
126
111
127
val original = reveal(
112
- mainModuleTest,
128
+ " ${temp.absolutePath}${ File .separator}$ mainModuleTest" ,
113
129
key,
114
130
obfuscated
115
131
)
@@ -124,38 +140,38 @@ class SCTest {
124
140
}
125
141
}
126
142
127
- /*
128
143
@Test
129
144
fun `10 - (PLUGIN) obfuscate xml` () {
130
- signingReportTask.runCommand { _, report ->
131
- val files = locateFiles(testProjectName, defaultConfig())
145
+ val temp = Files .createTempDir()
146
+ signingReportTask(temp.absolutePath).runCommand { _, report ->
147
+ val files = locateFiles(" ${temp.absolutePath}${File .separator}$testProjectName " , defaultConfig())
132
148
files.forEach { file ->
133
149
val entities = parseXML(file.file)
134
150
assert (entities.isNotEmpty())
135
- modifyXML(file.file, mainModuleTest, report.extractFingerprint(), true)
151
+ modifyXML(file.file, " ${temp.absolutePath}${ File .separator}$ mainModuleTest" , report.extractFingerprint(), true )
136
152
}
137
- val filesObfuscated = locateFiles(testProjectName, defaultConfig())
153
+ val filesObfuscated = locateFiles(" ${temp.absolutePath}${ File .separator}$ testProjectName" , defaultConfig())
138
154
filesObfuscated.forEach { file ->
139
155
val entities = parseXML(file.file)
140
156
assert (entities.isEmpty())
141
157
}
142
158
}
143
159
}
144
160
145
-
146
161
@Test
147
162
fun `11 - (ANDROID COMPILATION) obfuscate xml and build (not real workflow)` () {
148
- signingReportTask.runCommand { _, report ->
149
- val files = locateFiles(testProjectName, defaultConfig().apply {
163
+ val temp = Files .createTempDir()
164
+ signingReportTask(temp.absolutePath).runCommand { _, report ->
165
+ val files = locateFiles(" ${temp.absolutePath}${File .separator}$testProjectName " , defaultConfig().apply {
150
166
stringFiles.add(" strings_extra.xml" )
151
167
srcFolders.add(" src${File .separator} other_source" )
152
168
})
153
169
files.forEach { file ->
154
170
val entities = parseXML(file.file)
155
171
assert (entities.isNotEmpty())
156
- modifyXML(file.file, mainModuleTest, report.extractFingerprint(), true)
172
+ modifyXML(file.file, " ${temp.absolutePath}${ File .separator}$ mainModuleTest" , report.extractFingerprint(), true )
157
173
}
158
- val filesObfuscated = locateFiles(testProjectName, defaultConfig().apply {
174
+ val filesObfuscated = locateFiles(" ${temp.absolutePath}${ File .separator}$ testProjectName" , defaultConfig().apply {
159
175
stringFiles.add(" strings_extra.xml" )
160
176
srcFolders.add(" src${File .separator} other_source" )
161
177
})
@@ -166,27 +182,24 @@ class SCTest {
166
182
}
167
183
}
168
184
169
-
170
-
171
185
@Test
172
186
fun `12 - (PLUGIN COMPILATION) plugin with no test` () {
173
187
pluginBuildTask().runCommand { _, report ->
174
188
assert (report.contains(" BUILD SUCCESSFUL" ))
175
189
}
176
190
}
177
191
178
-
179
192
@Test
180
193
fun `13 - (ANDROID COMPILATION) plugin running on Android` () {
181
194
pluginBuildTask().runCommand { _, report ->
182
195
assert (report.contains(" BUILD SUCCESSFUL" ))
183
196
}
184
- prepareTask.runCommand { _, _ ->
185
- modifyForTest(testProjectName)
186
- buildTask.runCommand { _, androidReport ->
197
+ val temp = Files .createTempDir()
198
+ prepareTask(temp.absolutePath).runCommand { _, _ ->
199
+ modifyForTest(temp.absolutePath, " $testProjectName " )
200
+ buildTask(" ${temp.absolutePath}${File .separator}$testProjectName " ).runCommand { _, androidReport ->
187
201
assert (androidReport.contains(" BUILD SUCCESSFUL" ))
188
202
}
189
203
}
190
- }*/
191
-
204
+ }
192
205
}
0 commit comments