1
1
//go:build windows
2
2
// +build windows
3
3
4
- package reg_test
4
+ package winregistry_test
5
5
6
6
import (
7
7
"errors"
@@ -12,7 +12,7 @@ import (
12
12
"github.com/stretchr/testify/require"
13
13
"golang.org/x/sys/windows/registry"
14
14
15
- "github.com/realvnc-labs/tacoscript/tasks/support/reg "
15
+ "github.com/realvnc-labs/tacoscript/tasks/support/winregistry "
16
16
)
17
17
18
18
const baseTestKey = `HKLM:\Software\TestTacoScript`
@@ -21,7 +21,7 @@ const testKey = `UnitTestRun`
21
21
func setup (t * testing.T ) {
22
22
t .Helper ()
23
23
24
- err := reg .DeleteKeyRecursive (`HKLM:\Software\TestTacoScript` )
24
+ err := winregistry .DeleteKeyRecursive (`HKLM:\Software\TestTacoScript` )
25
25
if err != nil && ! errors .Is (err , registry .ErrNotExist ) {
26
26
require .NoError (t , err )
27
27
}
@@ -36,7 +36,7 @@ func TestShouldGetStringValue(t *testing.T) {
36
36
keyPath := `HKCU:\Software\GoProgrammingLanguage`
37
37
name := `installLocation`
38
38
39
- found , val , err := reg .GetValue (keyPath , name , reg .REG_SZ )
39
+ found , val , err := winregistry .GetValue (keyPath , name , winregistry .REG_SZ )
40
40
41
41
assert .NoError (t , err )
42
42
assert .True (t , found )
@@ -47,16 +47,16 @@ func TestShouldEnsureNewRegistryValueIsPresent(t *testing.T) {
47
47
keyPath := newTestKeyPath (testKey )
48
48
name := `testValue`
49
49
val := `123456789`
50
- valType := reg .REG_SZ
50
+ valType := winregistry .REG_SZ
51
51
52
52
setup (t )
53
53
54
- updated , desc , err := reg .SetValue (keyPath , name , val , valType )
54
+ updated , desc , err := winregistry .SetValue (keyPath , name , val , valType )
55
55
require .NoError (t , err )
56
56
assert .True (t , updated )
57
57
assert .Equal (t , "added new key" , desc )
58
58
59
- found , currVal , err := reg .GetValue (keyPath , name , reg .REG_SZ )
59
+ found , currVal , err := winregistry .GetValue (keyPath , name , winregistry .REG_SZ )
60
60
require .NoError (t , err )
61
61
assert .True (t , found )
62
62
assert .Equal (t , val , currVal )
@@ -66,21 +66,21 @@ func TestShouldEnsureExistingRegistryValueIsPresent(t *testing.T) {
66
66
keyPath := newTestKeyPath (testKey )
67
67
name := `testValue`
68
68
val := "1234567890"
69
- valType := reg .REG_SZ
69
+ valType := winregistry .REG_SZ
70
70
71
71
setup (t )
72
72
73
73
// set initial value
74
- reg .SetValue (keyPath , name , val , valType )
74
+ winregistry .SetValue (keyPath , name , val , valType )
75
75
76
76
// now update again without no change
77
- updated , desc , err := reg .SetValue (keyPath , name , val , valType )
77
+ updated , desc , err := winregistry .SetValue (keyPath , name , val , valType )
78
78
require .NoError (t , err )
79
79
80
80
assert .False (t , updated )
81
81
assert .Equal (t , "matching existing value" , desc )
82
82
83
- found , currVal , err := reg .GetValue (keyPath , name , valType )
83
+ found , currVal , err := winregistry .GetValue (keyPath , name , valType )
84
84
assert .NoError (t , err )
85
85
assert .True (t , found )
86
86
assert .Equal (t , val , currVal )
@@ -90,22 +90,22 @@ func TestShouldEnsureExistingRegistryValueIsUpdated(t *testing.T) {
90
90
keyPath := newTestKeyPath (testKey )
91
91
name := `testValue`
92
92
val := `123456789`
93
- valType := reg .REG_SZ
93
+ valType := winregistry .REG_SZ
94
94
95
95
setup (t )
96
96
97
97
// set an initial value
98
- reg .SetValue (keyPath , name , val + "abc" , valType )
98
+ winregistry .SetValue (keyPath , name , val + "abc" , valType )
99
99
100
100
// now update again
101
- updated , desc , err := reg .SetValue (keyPath , name , val , valType )
101
+ updated , desc , err := winregistry .SetValue (keyPath , name , val , valType )
102
102
assert .NoError (t , err )
103
103
104
104
// new value will have updated as true as the value should have been updated
105
105
assert .True (t , updated )
106
106
assert .Equal (t , "existing value updated" , desc )
107
107
108
- _ , updatedVal , err := reg .GetValue (keyPath , name , reg .REG_SZ )
108
+ _ , updatedVal , err := winregistry .GetValue (keyPath , name , winregistry .REG_SZ )
109
109
require .NoError (t , err )
110
110
111
111
assert .Equal (t , val , updatedVal )
@@ -115,19 +115,19 @@ func TestShouldEnsureExistingRegistryValueIsUpdatedWhenTypeChange(t *testing.T)
115
115
keyPath := newTestKeyPath (testKey )
116
116
name := `testValue`
117
117
var val uint32 = 1
118
- valType := reg .REG_DWORD
118
+ valType := winregistry .REG_DWORD
119
119
120
120
setup (t )
121
121
122
- reg .SetValue (keyPath , name , "existing value" , reg .REG_SZ )
122
+ winregistry .SetValue (keyPath , name , "existing value" , winregistry .REG_SZ )
123
123
124
- updated , desc , err := reg .SetValue (keyPath , name , val , valType )
124
+ updated , desc , err := winregistry .SetValue (keyPath , name , val , valType )
125
125
126
126
require .NoError (t , err )
127
127
assert .True (t , updated )
128
128
assert .Equal (t , "existing value updated" , desc )
129
129
130
- found , currVal , err := reg .GetValue (keyPath , name , valType )
130
+ found , currVal , err := winregistry .GetValue (keyPath , name , valType )
131
131
assert .NoError (t , err )
132
132
assert .True (t , found )
133
133
assert .Equal (t , val , currVal )
@@ -139,16 +139,16 @@ func TestShouldEnsureExistingRegistryValueIsAbsent(t *testing.T) {
139
139
140
140
setup (t )
141
141
142
- reg .SetValue (keyPath , name , "value to be removed" , reg .REG_SZ )
142
+ winregistry .SetValue (keyPath , name , "value to be removed" , winregistry .REG_SZ )
143
143
144
- updated , desc , err := reg .RemoveValue (keyPath , name )
144
+ updated , desc , err := winregistry .RemoveValue (keyPath , name )
145
145
assert .NoError (t , err )
146
146
147
147
// updated set to true indicates that a value was removed
148
148
assert .True (t , updated )
149
149
assert .Equal (t , "value removed" , desc )
150
150
151
- found , _ , err := reg .GetValue (keyPath , name , reg .REG_SZ )
151
+ found , _ , err := winregistry .GetValue (keyPath , name , winregistry .REG_SZ )
152
152
require .NoError (t , err )
153
153
assert .False (t , found )
154
154
}
@@ -160,19 +160,19 @@ func TestShouldWhenAbsentOnlyRemoveValue(t *testing.T) {
160
160
161
161
setup (t )
162
162
163
- reg .SetValue (keyPath , altName , "value to remain" , reg .REG_SZ )
163
+ winregistry .SetValue (keyPath , altName , "value to remain" , winregistry .REG_SZ )
164
164
165
- updated , desc , err := reg .RemoveValue (keyPath , name )
165
+ updated , desc , err := winregistry .RemoveValue (keyPath , name )
166
166
require .NoError (t , err )
167
167
168
168
assert .False (t , updated )
169
169
assert .Equal (t , "no existing value" , desc )
170
170
171
- found , _ , err := reg .GetValue (keyPath , name , reg .REG_SZ )
171
+ found , _ , err := winregistry .GetValue (keyPath , name , winregistry .REG_SZ )
172
172
require .NoError (t , err )
173
173
assert .False (t , found )
174
174
175
- found , val , err := reg .GetValue (keyPath , altName , reg .REG_SZ )
175
+ found , val , err := winregistry .GetValue (keyPath , altName , winregistry .REG_SZ )
176
176
require .NoError (t , err )
177
177
assert .True (t , found )
178
178
assert .Equal (t , "value to remain" , val )
@@ -185,9 +185,9 @@ func TestShouldWhenAbsentAndNoExistingValueHaveCorrectDescription(t *testing.T)
185
185
186
186
setup (t )
187
187
188
- reg .SetValue (keyPath , altName , "value to remain" , reg .REG_SZ )
188
+ winregistry .SetValue (keyPath , altName , "value to remain" , winregistry .REG_SZ )
189
189
190
- updated , desc , err := reg .RemoveValue (keyPath , name )
190
+ updated , desc , err := winregistry .RemoveValue (keyPath , name )
191
191
require .NoError (t , err )
192
192
193
193
assert .False (t , updated )
@@ -201,59 +201,59 @@ func TestShouldEnsureExistingRegistryKeyIsAbsent(t *testing.T) {
201
201
202
202
setup (t )
203
203
204
- reg .SetValue (keyPathToRemove , name , "1234" , reg .REG_SZ )
205
- reg .SetValue (keyPathToRemove , altName , "value to remove also" , reg .REG_SZ )
204
+ winregistry .SetValue (keyPathToRemove , name , "1234" , winregistry .REG_SZ )
205
+ winregistry .SetValue (keyPathToRemove , altName , "value to remove also" , winregistry .REG_SZ )
206
206
207
- updated , desc , err := reg .RemoveKey (keyPathToRemove )
207
+ updated , desc , err := winregistry .RemoveKey (keyPathToRemove )
208
208
assert .NoError (t , err )
209
209
210
210
// updated set to true indicates that a value was removed
211
211
assert .True (t , updated )
212
212
assert .Equal (t , "key removed" , desc )
213
213
214
- found , _ , err := reg .GetValue (keyPathToRemove , name , reg .REG_SZ )
214
+ found , _ , err := winregistry .GetValue (keyPathToRemove , name , winregistry .REG_SZ )
215
215
require .NoError (t , err )
216
216
assert .False (t , found )
217
217
218
- found , _ , err = reg .GetValue (keyPathToRemove , altName , reg .REG_SZ )
218
+ found , _ , err = winregistry .GetValue (keyPathToRemove , altName , winregistry .REG_SZ )
219
219
require .NoError (t , err )
220
220
assert .False (t , found )
221
221
}
222
222
223
223
func TestShouldDeleteSubKeyRecursively (t * testing.T ) {
224
224
keyPath := createTestRegBranch (t )
225
225
226
- updated , desc , err := reg .RemoveKey (keyPath + `\2` )
226
+ updated , desc , err := winregistry .RemoveKey (keyPath + `\2` )
227
227
assert .NoError (t , err )
228
228
229
229
// updated set to true indicates that a value was removed
230
230
assert .True (t , updated )
231
231
assert .Equal (t , "key removed" , desc )
232
232
233
- found , _ , err := reg .GetValue (keyPath + `\2` , "2" , reg .REG_SZ )
233
+ found , _ , err := winregistry .GetValue (keyPath + `\2` , "2" , winregistry .REG_SZ )
234
234
require .NoError (t , err )
235
235
assert .False (t , found )
236
236
237
- found , _ , err = reg .GetValue (keyPath + `\6` , "4" , reg .REG_SZ )
237
+ found , _ , err = winregistry .GetValue (keyPath + `\6` , "4" , winregistry .REG_SZ )
238
238
require .NoError (t , err )
239
239
assert .True (t , found )
240
240
}
241
241
242
242
func TestShouldDeleteSubKeyWithoutChildrenRecursively (t * testing.T ) {
243
243
keyPath := createTestRegBranch (t )
244
244
245
- updated , desc , err := reg .RemoveKey (keyPath + `\6` )
245
+ updated , desc , err := winregistry .RemoveKey (keyPath + `\6` )
246
246
assert .NoError (t , err )
247
247
248
248
// updated set to true indicates that a value was removed
249
249
assert .True (t , updated )
250
250
assert .Equal (t , "key removed" , desc )
251
251
252
- found , _ , err := reg .GetValue (keyPath + `\6` , "4" , reg .REG_SZ )
252
+ found , _ , err := winregistry .GetValue (keyPath + `\6` , "4" , winregistry .REG_SZ )
253
253
require .NoError (t , err )
254
254
assert .False (t , found )
255
255
256
- found , _ , err = reg .GetValue (keyPath + `\2` , "4" , reg .REG_SZ )
256
+ found , _ , err = winregistry .GetValue (keyPath + `\2` , "4" , winregistry .REG_SZ )
257
257
require .NoError (t , err )
258
258
assert .True (t , found )
259
259
}
@@ -275,7 +275,7 @@ func createTestRegBranch(t *testing.T) (keyPath string) {
275
275
276
276
func createBranchLeaves (t * testing.T , keyPath string , from int , to int ) {
277
277
for i := from ; i <= to ; i ++ {
278
- _ , _ , err := reg .SetValue (keyPath , strconv .Itoa (i ), strconv .Itoa (i ), reg .REG_SZ )
278
+ _ , _ , err := winregistry .SetValue (keyPath , strconv .Itoa (i ), strconv .Itoa (i ), winregistry .REG_SZ )
279
279
require .NoError (t , err )
280
280
}
281
281
}
0 commit comments