RegressionTests__Win32OperatingSystemTest.st
branchjv
changeset 2078 9d76442a61bb
parent 1977 f53c1ec52418
child 2079 a63e63505b24
--- a/RegressionTests__Win32OperatingSystemTest.st	Thu Dec 13 23:04:29 2018 +0100
+++ b/RegressionTests__Win32OperatingSystemTest.st	Mon Dec 10 15:24:26 2018 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) Claus Gittinger / eXept Software AG
  COPYRIGHT (c) 2016 Jan Vrany
@@ -15,7 +17,7 @@
 "{ NameSpace: RegressionTests }"
 
 TestCase subclass:#Win32OperatingSystemTest
-	instanceVariableNames:''
+	instanceVariableNames:'registryPath'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'tests-Regression-RuntimeSystem'
@@ -38,13 +40,286 @@
 "
 ! !
 
+!Win32OperatingSystemTest methodsFor:'file templates'!
+
+unicodeRegistryExample
+
+^  'Windows Registry Editor Version 5.00
+
+[HKEY_CURRENT_USER\Software\SmalltalkX-tests]
+"emptyToTest"=""
+"testEmptyMultiSZ"=hex(7):00,00
+"bledesu"="''Testing Unicode chars ř ž č ルすしかき'').          "
+"しかき    "="Testus gradus"
+" ř ž č ル.          "="Testing Unicode chars ř ž č ルすしかき"
+"zero"=hex:
+"non-zero"=hex:11,10
+"す    "=hex:10
+"dword_value"=dword:000023af
+"11"="A number name"
+"き"=dword:234234af
+"qwordvalue"=hex(b):ad,61,28,a3,95,0e,74,79
+"qword_max"=hex(b):ff,ff,ff,ff,ff,ff,ff,ff
+"すし"=hex(b):ef,ad,00,00,00,00,00,00
+"Font_Leelawadee UI Bold"=hex(7):53,00,45,00,47,00,4f,00,45,00,55,00,49,00,42,\
+  00,2e,00,54,00,54,00,46,00,2c,00,53,00,65,00,67,00,6f,00,65,00,20,00,55,00,\
+  49,00,20,00,42,00,6f,00,6c,00,64,00,2c,00,31,00,31,00,30,00,2c,00,38,00,32,\
+  00,00,00,53,00,45,00,47,00,4f,00,45,00,55,00,49,00,42,00,2e,00,54,00,54,00,\
+  46,00,2c,00,53,00,65,00,67,00,6f,00,65,00,20,00,55,00,49,00,20,00,42,00,6f,\
+  00,6c,00,64,00,00,00,4d,00,45,00,49,00,52,00,59,00,4f,00,42,00,2e,00,54,00,\
+  54,00,43,00,2c,00,4d,00,65,00,69,00,72,00,79,00,6f,00,20,00,55,00,49,00,20,\
+  00,42,00,6f,00,6c,00,64,00,2c,00,31,00,32,00,30,00,2c,00,39,00,36,00,00,00,\
+  4d,00,45,00,49,00,52,00,59,00,4f,00,42,00,2e,00,54,00,54,00,43,00,2c,00,4d,\
+  00,65,00,69,00,72,00,79,00,6f,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,\
+  64,00,00,00,4d,00,53,00,4a,00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,\
+  00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,4a,00,68,00,\
+  65,00,6e,00,67,00,48,00,65,00,69,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,\
+  00,64,00,2c,00,31,00,32,00,30,00,2c,00,39,00,36,00,00,00,4d,00,53,00,4a,00,\
+  48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,63,00,72,00,6f,\
+  00,73,00,6f,00,66,00,74,00,20,00,4a,00,68,00,65,00,6e,00,67,00,48,00,65,00,\
+  69,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,00,53,00,59,\
+  00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,63,00,72,00,\
+  6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,00,20,00,55,\
+  00,49,00,20,00,42,00,6f,00,6c,00,64,00,2c,00,31,00,32,00,38,00,2c,00,39,00,\
+  36,00,00,00,4d,00,53,00,59,00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,\
+  00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,\
+  48,00,65,00,69,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,\
+  00,41,00,4c,00,47,00,55,00,4e,00,42,00,44,00,2e,00,54,00,54,00,46,00,2c,00,\
+  4d,00,61,00,6c,00,67,00,75,00,6e,00,20,00,47,00,6f,00,74,00,68,00,69,00,63,\
+  00,20,00,42,00,6f,00,6c,00,64,00,2c,00,31,00,31,00,38,00,2c,00,39,00,36,00,\
+  00,00,4d,00,41,00,4c,00,47,00,55,00,4e,00,42,00,44,00,2e,00,54,00,54,00,46,\
+  00,2c,00,4d,00,61,00,6c,00,67,00,75,00,6e,00,20,00,47,00,6f,00,74,00,68,00,\
+  69,00,63,00,20,00,42,00,6f,00,6c,00,64,00,00,00,59,00,55,00,47,00,4f,00,54,\
+  00,48,00,42,00,2e,00,54,00,54,00,43,00,2c,00,59,00,75,00,20,00,47,00,6f,00,\
+  74,00,68,00,69,00,63,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,2c,\
+  00,31,00,32,00,38,00,2c,00,39,00,36,00,00,00,59,00,55,00,47,00,4f,00,54,00,\
+  48,00,42,00,2e,00,54,00,54,00,43,00,2c,00,59,00,75,00,20,00,47,00,6f,00,74,\
+  00,68,00,69,00,63,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,\
+  53,00,45,00,47,00,55,00,49,00,53,00,59,00,4d,00,2e,00,54,00,54,00,46,00,2c,\
+  00,53,00,65,00,67,00,6f,00,65,00,20,00,55,00,49,00,20,00,53,00,79,00,6d,00,\
+  62,00,6f,00,6c,00,00,00,00,00
+"ř ž č ルすしか"=hex(7):27,00,54,00,65,00,73,00,74,00,69,00,6e,00,67,00,20,00,55,\
+  00,6e,00,69,00,63,00,6f,00,64,00,65,00,20,00,63,00,68,00,61,00,72,00,73,00,\
+  20,00,59,01,20,00,7e,01,20,00,0d,01,20,00,eb,30,59,30,57,30,4b,30,4d,30,27,\
+  00,29,00,00,00,53,00,45,00,47,00,4f,00,45,00,55,00,49,00,42,00,2e,00,54,00,\
+  54,00,46,00,2c,00,53,00,65,00,67,00,6f,00,65,00,20,00,55,00,49,00,20,00,42,\
+  00,6f,00,6c,00,64,00,2c,00,31,00,31,00,30,00,2c,00,38,00,32,00,00,00,53,00,\
+  45,00,47,00,4f,00,45,00,55,00,49,00,42,00,2e,00,54,00,54,00,46,00,2c,00,53,\
+  00,65,00,67,00,6f,00,65,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,\
+  00,00,4d,00,45,00,49,00,52,00,59,00,4f,00,42,00,2e,00,54,00,54,00,43,00,2c,\
+  00,4d,00,65,00,69,00,72,00,79,00,6f,00,20,00,55,00,49,00,20,00,42,00,6f,00,\
+  6c,00,64,00,2c,00,31,00,32,00,30,00,2c,00,39,00,36,00,00,00,4d,00,45,00,49,\
+  00,52,00,59,00,4f,00,42,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,65,00,69,00,\
+  72,00,79,00,6f,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,\
+  00,53,00,4a,00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,\
+  63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,4a,00,68,00,65,00,6e,00,67,\
+  00,48,00,65,00,69,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,2c,00,\
+  31,00,32,00,30,00,2c,00,39,00,36,00,00,00,4d,00,53,00,4a,00,48,00,42,00,44,\
+  00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,\
+  66,00,74,00,20,00,4a,00,68,00,65,00,6e,00,67,00,48,00,65,00,69,00,20,00,55,\
+  00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,00,53,00,59,00,48,00,42,00,\
+  44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,\
+  00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,00,20,00,55,00,49,00,20,00,\
+  42,00,6f,00,6c,00,64,00,2c,00,31,00,32,00,38,00,2c,00,39,00,36,00,00,00,4d,\
+  00,53,00,59,00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,\
+  63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,\
+  00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,00,41,00,4c,00,\
+  47,00,55,00,4e,00,42,00,44,00,2e,00,54,00,54,00,46,00,2c,00,4d,00,61,00,6c,\
+  00,67,00,75,00,6e,00,20,00,47,00,6f,00,74,00,68,00,69,00,63,00,20,00,42,00,\
+  6f,00,6c,00,64,00,2c,00,31,00,31,00,38,00,2c,00,39,00,36,00,00,00,4d,00,41,\
+  00,4c,00,47,00,55,00,4e,00,42,00,44,00,2e,00,54,00,54,00,46,00,2c,00,4d,00,\
+  61,00,6c,00,67,00,75,00,6e,00,20,00,47,00,6f,00,74,00,68,00,69,00,63,00,20,\
+  00,42,00,6f,00,6c,00,64,00,00,00,59,00,55,00,47,00,4f,00,54,00,48,00,42,00,\
+  2e,00,54,00,54,00,43,00,2c,00,59,00,75,00,20,00,47,00,6f,00,74,00,68,00,69,\
+  00,63,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,2c,00,31,00,32,00,\
+  38,00,2c,00,39,00,36,00,00,00,59,00,55,00,47,00,4f,00,54,00,48,00,42,00,2e,\
+  00,54,00,54,00,43,00,2c,00,59,00,75,00,20,00,47,00,6f,00,74,00,68,00,69,00,\
+  63,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,53,00,45,00,47,\
+  00,55,00,49,00,53,00,59,00,4d,00,2e,00,54,00,54,00,46,00,2c,00,53,00,65,00,\
+  67,00,6f,00,65,00,20,00,55,00,49,00,20,00,53,00,79,00,6d,00,62,00,6f,00,6c,\
+  00,00,00,00,00
+"Ugh"=hex(2):27,00,54,00,65,00,73,00,74,00,69,00,6e,00,67,00,20,00,55,00,6e,00,\
+  69,00,63,00,6f,00,64,00,65,00,20,00,63,00,68,00,61,00,72,00,73,00,20,00,59,\
+  01,20,00,7e,01,20,00,0d,01,20,00,eb,30,59,30,57,30,4b,30,4d,30,27,00,29,00,\
+  2e,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,00,00
+" č ルすしか"=hex(2):27,00,54,00,65,00,73,00,74,00,69,00,6e,00,67,00,20,00,55,00,\
+  6e,00,69,00,63,00,6f,00,64,00,65,00,20,00,63,00,68,00,61,00,72,00,73,00,20,\
+  00,59,01,20,00,7e,01,20,00,0d,01,20,00,eb,30,59,30,57,30,4b,30,4d,30,27,00,\
+  29,00,2e,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,00,\
+  00
+
+[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか]
+"bledesu"="''Testing Unicode chars ř ž č ルすしかき'').          "
+"しかき    "="Testus gradus"
+" ř ž č ル.          "="Testing Unicode chars ř ž č ルすしかき"
+"zero"=hex:
+"non-zero"=hex:11,10
+"す    "=hex:10
+"dword_value"=dword:000023af
+"き"=dword:234234af
+"qwordvalue"=hex(b):ad,61,28,a3,95,0e,74,79
+"qword_max"=hex(b):ff,ff,ff,ff,ff,ff,ff,ff
+"すし"=hex(b):ef,ad,00,00,00,00,00,00
+"Font_Leelawadee UI Bold"=hex(7):53,00,45,00,47,00,4f,00,45,00,55,00,49,00,42,\
+  00,2e,00,54,00,54,00,46,00,2c,00,53,00,65,00,67,00,6f,00,65,00,20,00,55,00,\
+  49,00,20,00,42,00,6f,00,6c,00,64,00,2c,00,31,00,31,00,30,00,2c,00,38,00,32,\
+  00,00,00,53,00,45,00,47,00,4f,00,45,00,55,00,49,00,42,00,2e,00,54,00,54,00,\
+  46,00,2c,00,53,00,65,00,67,00,6f,00,65,00,20,00,55,00,49,00,20,00,42,00,6f,\
+  00,6c,00,64,00,00,00,4d,00,45,00,49,00,52,00,59,00,4f,00,42,00,2e,00,54,00,\
+  54,00,43,00,2c,00,4d,00,65,00,69,00,72,00,79,00,6f,00,20,00,55,00,49,00,20,\
+  00,42,00,6f,00,6c,00,64,00,2c,00,31,00,32,00,30,00,2c,00,39,00,36,00,00,00,\
+  4d,00,45,00,49,00,52,00,59,00,4f,00,42,00,2e,00,54,00,54,00,43,00,2c,00,4d,\
+  00,65,00,69,00,72,00,79,00,6f,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,\
+  64,00,00,00,4d,00,53,00,4a,00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,\
+  00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,4a,00,68,00,\
+  65,00,6e,00,67,00,48,00,65,00,69,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,\
+  00,64,00,2c,00,31,00,32,00,30,00,2c,00,39,00,36,00,00,00,4d,00,53,00,4a,00,\
+  48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,63,00,72,00,6f,\
+  00,73,00,6f,00,66,00,74,00,20,00,4a,00,68,00,65,00,6e,00,67,00,48,00,65,00,\
+  69,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,00,53,00,59,\
+  00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,63,00,72,00,\
+  6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,00,20,00,55,\
+  00,49,00,20,00,42,00,6f,00,6c,00,64,00,2c,00,31,00,32,00,38,00,2c,00,39,00,\
+  36,00,00,00,4d,00,53,00,59,00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,\
+  00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,\
+  48,00,65,00,69,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,\
+  00,41,00,4c,00,47,00,55,00,4e,00,42,00,44,00,2e,00,54,00,54,00,46,00,2c,00,\
+  4d,00,61,00,6c,00,67,00,75,00,6e,00,20,00,47,00,6f,00,74,00,68,00,69,00,63,\
+  00,20,00,42,00,6f,00,6c,00,64,00,2c,00,31,00,31,00,38,00,2c,00,39,00,36,00,\
+  00,00,4d,00,41,00,4c,00,47,00,55,00,4e,00,42,00,44,00,2e,00,54,00,54,00,46,\
+  00,2c,00,4d,00,61,00,6c,00,67,00,75,00,6e,00,20,00,47,00,6f,00,74,00,68,00,\
+  69,00,63,00,20,00,42,00,6f,00,6c,00,64,00,00,00,59,00,55,00,47,00,4f,00,54,\
+  00,48,00,42,00,2e,00,54,00,54,00,43,00,2c,00,59,00,75,00,20,00,47,00,6f,00,\
+  74,00,68,00,69,00,63,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,2c,\
+  00,31,00,32,00,38,00,2c,00,39,00,36,00,00,00,59,00,55,00,47,00,4f,00,54,00,\
+  48,00,42,00,2e,00,54,00,54,00,43,00,2c,00,59,00,75,00,20,00,47,00,6f,00,74,\
+  00,68,00,69,00,63,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,\
+  53,00,45,00,47,00,55,00,49,00,53,00,59,00,4d,00,2e,00,54,00,54,00,46,00,2c,\
+  00,53,00,65,00,67,00,6f,00,65,00,20,00,55,00,49,00,20,00,53,00,79,00,6d,00,\
+  62,00,6f,00,6c,00,00,00,00,00
+"ř ž č ルすしか"=hex(7):27,00,54,00,65,00,73,00,74,00,69,00,6e,00,67,00,20,00,55,\
+  00,6e,00,69,00,63,00,6f,00,64,00,65,00,20,00,63,00,68,00,61,00,72,00,73,00,\
+  20,00,59,01,20,00,7e,01,20,00,0d,01,20,00,eb,30,59,30,57,30,4b,30,4d,30,27,\
+  00,29,00,00,00,53,00,45,00,47,00,4f,00,45,00,55,00,49,00,42,00,2e,00,54,00,\
+  54,00,46,00,2c,00,53,00,65,00,67,00,6f,00,65,00,20,00,55,00,49,00,20,00,42,\
+  00,6f,00,6c,00,64,00,2c,00,31,00,31,00,30,00,2c,00,38,00,32,00,00,00,53,00,\
+  45,00,47,00,4f,00,45,00,55,00,49,00,42,00,2e,00,54,00,54,00,46,00,2c,00,53,\
+  00,65,00,67,00,6f,00,65,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,\
+  00,00,4d,00,45,00,49,00,52,00,59,00,4f,00,42,00,2e,00,54,00,54,00,43,00,2c,\
+  00,4d,00,65,00,69,00,72,00,79,00,6f,00,20,00,55,00,49,00,20,00,42,00,6f,00,\
+  6c,00,64,00,2c,00,31,00,32,00,30,00,2c,00,39,00,36,00,00,00,4d,00,45,00,49,\
+  00,52,00,59,00,4f,00,42,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,65,00,69,00,\
+  72,00,79,00,6f,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,\
+  00,53,00,4a,00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,\
+  63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,4a,00,68,00,65,00,6e,00,67,\
+  00,48,00,65,00,69,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,2c,00,\
+  31,00,32,00,30,00,2c,00,39,00,36,00,00,00,4d,00,53,00,4a,00,48,00,42,00,44,\
+  00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,00,\
+  66,00,74,00,20,00,4a,00,68,00,65,00,6e,00,67,00,48,00,65,00,69,00,20,00,55,\
+  00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,00,53,00,59,00,48,00,42,00,\
+  44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,63,00,72,00,6f,00,73,00,6f,\
+  00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,00,20,00,55,00,49,00,20,00,\
+  42,00,6f,00,6c,00,64,00,2c,00,31,00,32,00,38,00,2c,00,39,00,36,00,00,00,4d,\
+  00,53,00,59,00,48,00,42,00,44,00,2e,00,54,00,54,00,43,00,2c,00,4d,00,69,00,\
+  63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,20,00,59,00,61,00,48,00,65,00,69,\
+  00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,4d,00,41,00,4c,00,\
+  47,00,55,00,4e,00,42,00,44,00,2e,00,54,00,54,00,46,00,2c,00,4d,00,61,00,6c,\
+  00,67,00,75,00,6e,00,20,00,47,00,6f,00,74,00,68,00,69,00,63,00,20,00,42,00,\
+  6f,00,6c,00,64,00,2c,00,31,00,31,00,38,00,2c,00,39,00,36,00,00,00,4d,00,41,\
+  00,4c,00,47,00,55,00,4e,00,42,00,44,00,2e,00,54,00,54,00,46,00,2c,00,4d,00,\
+  61,00,6c,00,67,00,75,00,6e,00,20,00,47,00,6f,00,74,00,68,00,69,00,63,00,20,\
+  00,42,00,6f,00,6c,00,64,00,00,00,59,00,55,00,47,00,4f,00,54,00,48,00,42,00,\
+  2e,00,54,00,54,00,43,00,2c,00,59,00,75,00,20,00,47,00,6f,00,74,00,68,00,69,\
+  00,63,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,2c,00,31,00,32,00,\
+  38,00,2c,00,39,00,36,00,00,00,59,00,55,00,47,00,4f,00,54,00,48,00,42,00,2e,\
+  00,54,00,54,00,43,00,2c,00,59,00,75,00,20,00,47,00,6f,00,74,00,68,00,69,00,\
+  63,00,20,00,55,00,49,00,20,00,42,00,6f,00,6c,00,64,00,00,00,53,00,45,00,47,\
+  00,55,00,49,00,53,00,59,00,4d,00,2e,00,54,00,54,00,46,00,2c,00,53,00,65,00,\
+  67,00,6f,00,65,00,20,00,55,00,49,00,20,00,53,00,79,00,6d,00,62,00,6f,00,6c,\
+  00,00,00,00,00
+"Ugh"=hex(2):27,00,54,00,65,00,73,00,74,00,69,00,6e,00,67,00,20,00,55,00,6e,00,\
+  69,00,63,00,6f,00,64,00,65,00,20,00,63,00,68,00,61,00,72,00,73,00,20,00,59,\
+  01,20,00,7e,01,20,00,0d,01,20,00,eb,30,59,30,57,30,4b,30,4d,30,27,00,29,00,\
+  2e,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,00,00
+" č ルすしか"=hex(2):27,00,54,00,65,00,73,00,74,00,69,00,6e,00,67,00,20,00,55,00,\
+  6e,00,69,00,63,00,6f,00,64,00,65,00,20,00,63,00,68,00,61,00,72,00,73,00,20,\
+  00,59,01,20,00,7e,01,20,00,0d,01,20,00,eb,30,59,30,57,30,4b,30,4d,30,27,00,\
+  29,00,2e,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,20,00,00,\
+  00
+
+[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end]
+"testing"=" ルすしか"
+"か"=dword:00000002
+"256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end"="Longer_than_256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|endsdfsdfasdfasdfasdfjlkasdjflkasjdflkjasdlfjaslkdfjlkasdjflkasdflksadlkjsadlfalsdfůlasdjflkasdjflkasjdflkůjasdflůkjasdlůfjalsůkdjflůksd"
+
+[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end]
+
+[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end\unreachable]
+
+[HKEY_CURRENT_USER\Software\SmalltalkX-tests\ ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end\reachable]
+'
+
+    "Created: / 16-11-2018 / 11:24:57 / svestkap"
+    "Modified: / 05-12-2018 / 11:33:32 / svestkap"
+! !
+
 !Win32OperatingSystemTest methodsFor:'release'!
 
 setUp
+    | registryToImport file |
+
     self skipIf: OperatingSystem isMSWINDOWSlike not description: 'Windows specific tests'.
-    super setUp
+    super setUp.
+            
+    registryToImport := self unicodeRegistryExample.    
+    
+    "/ registry path which will be used  
+    registryPath := registryToImport 
+        copyFrom: (registryToImport indexOf: $[) + 1
+        to: (registryToImport indexOf: $]) - 1.       
+        
+    "/ temporary file which will be used for importing
+    file := Filename newTemporary.
+
+    "/ Registry export is in UTF-16LE with BOM
+
+    " What is BOM?
+      A byte order mark (BOM) consists of the character code U+FEFF at the beginning of a data stream, where it can be used as a signature 
+      defining the byte order and encoding form, primarily of unmarked plaintext files. Under some higher level protocols, use of a BOM may
+      be mandatory (or prohibited) in the Unicode data stream defined in that protocol."
+
+    "/ needed to write to file as Windows Registry do UTF16-LE With Signature
+    " BOM for UTF-16is:
+       FE FF    UTF-16, big-endian (BE)
+       FF FE    UTF-16, little-endian (LE)"
+    
+    "/ Writing BOM first
+    file writingFileDo: [ :stream |         
+       stream nextPutUtf16: (Character codePoint:16rFFFE)         
+    ].    
+    
+    "/ this is UTF16-LE (Little Endian) Without Signature (BOM)
+    file appendingFileDo: [ :stream | stream nextPutAllUtf16Bytes: registryToImport MSB: false].
+     
+    [   "/ adding registry entry so we can test it
+        OperatingSystem getCommandOutputFrom: ('REG IMPORT ' , file asString)
+    ] ensure: [ file remove ].
 
     "Created: / 28-12-2016 / 22:12:14 / jv"
+    "Modified (format): / 16-11-2018 / 11:30:30 / svestkap"
+!
+
+tearDown
+    self skipIf: OperatingSystem isMSWINDOWSlike not description: 'Windows specific tests'.
+    super tearDown.
+    
+    "/ remove the added registry entry
+    OperatingSystem getCommandOutputFrom:('REG DELETE "', registryPath, '" /f').
+
+    "/ Check if testing registry was correctly deleted
+    self assert: ((OperatingSystem registryEntry key: registryPath) isNil).
+
+    "Created: / 16-11-2018 / 11:29:12 / svestkap"
 ! !
 
 !Win32OperatingSystemTest methodsFor:'tests'!
@@ -123,6 +398,813 @@
     "Modified: / 05-01-2017 / 21:45:20 / jv"
 ! !
 
+!Win32OperatingSystemTest methodsFor:'tests-unicodeRead'!
+
+testReadSubKeyAtIndex
+    "Reading subKeys at certain index
+    WARNING: subKeyAtIndex: is zero based!!!!!!"
+
+    | readData testingRegistryPath |
+
+    readData := Unicode16String new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+
+    readData := testingRegistryPath subKeyAtIndex: 0.
+
+    self assert: readData notEmptyOrNil.
+    self assert: (readData path copyAfterLast: $\) = ' ルすしか'
+
+    "
+     self run:#testReadSubKeyAtIndex
+     self new testReadSubKeyAtIndex
+    "
+
+    "Created: / 05-12-2018 / 12:39:45 / svestkap"
+!
+
+testReadSubKeyAtIndex_MaxPath
+    "reading subKeyAtIndex with max Path
+     Note: This test acually breaks the limit that Microsoft specified in MSDN - registry key name should be maximum 255 characters including absolute path
+     MSDN link: https://docs.microsoft.com/en-us/windows/desktop/sysinfo/registry-element-size-limits"
+
+    | readData testingRegistryPath |
+
+    "/readData := Unicode16String new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: 
+        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').        
+    
+    readData := testingRegistryPath subKeyAtIndex: 0.
+
+    self assert: readData path notEmptyOrNil.
+    self assert:(readData path endsWith: '|end').    
+
+    "/ this is maximum path size which can be reached if the SubKey is reached via index
+    self assert: readData path size = 563. "/ there is one backslash (for path) more compared to testReadSubKeyNamesAndClassesAtIndex_MaxPath_01
+    
+    "
+     self run:#testReadSubKeyAtIndex_MaxPath
+     self new testReadSubKeyAtIndex_MaxPath
+    "
+
+    "Created: / 05-12-2018 / 12:39:54 / svestkap"
+!
+
+testReadSubKeyNamesAndClassesAtIndex_MaxPath
+    "reading SubKeyNamesAndClasses with max Path
+     Note: This test acually breaks the limit that Microsoft specified in MSDN - registry key name should be maximum 255 characters including absolute path
+     MSDN link: https://docs.microsoft.com/en-us/windows/desktop/sysinfo/registry-element-size-limits"
+
+    | readData testingRegistryPath |
+
+    readData := Unicode16String new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: 
+        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').        
+    
+    readData := testingRegistryPath subKeyNameAndClassAtIndex: 0.
+
+    self assert: readData notEmptyOrNil.
+    self assert:(readData first endsWith: '|end').
+    self assert: readData first = '256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end'.        
+
+    "/ this is maximum path size which can be reached if the SubKey is reached via index
+    self assert: (testingRegistryPath path size + readData first size) = 562.
+    
+    "
+     self run:#testReadSubKeyNamesAndClassesAtIndex_MaxPath
+     self new testReadSubKeyNamesAndClassesAtIndex_MaxPath
+    "
+
+    "Created: / 05-12-2018 / 12:40:08 / svestkap"
+!
+
+testReadTooLongPath
+    "Trying to read too long path - if you try to read such a long path it just returns nil"
+
+    | testingRegistryPath |
+    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: 
+            (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa
+            |end','\','256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').        
+
+    self assert: testingRegistryPath isNil            
+    
+    "
+     self run:#testReadTooLongPath
+     self new testReadTooLongPath
+    "
+
+    "Created: / 22-11-2018 / 11:19:51 / svestkap"
+    "Modified (format): / 05-12-2018 / 12:38:58 / svestkap"
+!
+
+testReadValueNameAtIndex
+    "Reading values (#valueNameAtIndex:) at certain index
+    WARNING: #valueNameAtIndex: is zero based!!!!!!
+    Note: This test acually breaks the limit that Microsoft specified in MSDN - registry key name should be maximum 255 characters including absolute path
+    MSDN link: https://docs.microsoft.com/en-us/windows/desktop/sysinfo/registry-element-size-limits" 
+
+    | readData testingRegistryPath |
+
+    readData := Unicode16String new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: (registryPath,'\', ' ルすしか').
+
+    readData := testingRegistryPath valueNameAtIndex: 1.
+
+    self assert: readData notEmptyOrNil.
+    self assert: readData = 'しかき    '
+
+    "
+     self run:#testReadValueNameAtIndex
+     self new testReadValueNameAtIndex
+    "
+
+    "Created: / 05-12-2018 / 12:40:21 / svestkap"
+!
+
+testReadValueNamed_REG_BINARY_01
+    "Testing if REG_BINARY values are read correctly via valueNamed:"
+
+    | readData testingRegistryPath |
+        
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    readData := testingRegistryPath valueNamed: 'zero'.
+        
+    self assert: readData = ByteArray new.
+
+    "
+     self run:#testReadValueNamed_REG_BINARY_01
+     self new testReadValueNamed_REG_BINARY_01
+    "
+
+    "Created: / 16-11-2018 / 12:37:50 / svestkap"
+!
+
+testReadValueNamed_REG_BINARY_02
+    "Testing if REG_BINARY values are read correctly via valueNamed:"
+
+    | testingRegistryPath readData readDataHex |
+        
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    readData := testingRegistryPath valueNamed: 'non-zero'.        
+    readDataHex := readData hexPrintStringWithSeparator: $|.
+    
+    self assert: readData = #[17 16]. "/ ByteArray
+    self assert: readDataHex = '11|10' "/ hex    
+    
+    "
+     self run:#testReadValueNamed_REG_BINARY_02
+     self new testReadValueNamed_REG_BINARY_02
+    "
+
+    "Created: / 16-11-2018 / 12:39:33 / svestkap"
+!
+
+testReadValueNamed_REG_DWORD_01
+    "Testing if REG_DWORD values are read correctly via valueNamed:"
+
+    | readData testingRegistryPath |
+    
+    readData := Unicode16String new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    readData := testingRegistryPath valueNamed: 'dword_value'.
+        
+    self assert: readData = 9135.
+
+    "
+     self run:#testReadValueNamed_REG_DWORD_01
+     self new testReadValueNamed_REG_DWORD_01
+    "
+
+    "Created: / 16-11-2018 / 12:24:26 / svestkap"
+!
+
+testReadValueNamed_REG_DWORD_02
+    "Testing if REG_DWORD values are read correctly via valueNamed:"
+
+    | readData testingRegistryPath |
+    
+    readData := Unicode16String new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    readData := testingRegistryPath valueNamed: 'き'.
+        
+    self assert: readData = 591541423.
+
+    "
+     self run:#testReadValueNamed_REG_DWORD_02
+     self new testReadValueNamed_REG_DWORD_02
+    "
+
+    "Created: / 16-11-2018 / 12:24:43 / svestkap"
+!
+
+testReadValueNamed_REG_EXPAND_SZ_01
+    "Testing if REG_EXPAND_SZ values are read correctly via valueNamed:"
+
+    | readData testingRegistryPath |
+    
+    readData := Unicode16String new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    readData := testingRegistryPath valueNamed: ' č ルすしか'.
+        
+    self assert: readData = '''Testing Unicode chars ř ž č ルすしかき'').          '. 
+
+    "
+     self run:#testReadValueNamed_REG_EXPAND_SZ_01
+     self new testReadValueNamed_REG_EXPAND_SZ_01
+    "
+
+    "Created: / 16-11-2018 / 12:27:58 / svestkap"
+!
+
+testReadValueNamed_REG_EXPAND_SZ_02
+    "Testing if REG_EXPAND_SZ values are read correctly via valueNamed:"
+
+    | readData testingRegistryPath |
+    
+    readData := Unicode16String new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    readData := testingRegistryPath valueNamed: 'Ugh'.
+        
+    self assert: readData = '''Testing Unicode chars ř ž č ルすしかき'').          '. 
+
+    "
+     self run:#testReadValueNamed_REG_EXPAND_SZ_02
+     self new testReadValueNamed_REG_EXPAND_SZ_02
+    "
+
+    "Created: / 16-11-2018 / 12:29:52 / svestkap"
+!
+
+testReadValueNamed_REG_MULTI_SZ_01
+    "Testing if REG_MULTI_SZ values are read correctly via valueNamed:"
+
+    | readData testingRegistryPath |
+        
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    readData := testingRegistryPath valueNamed: 'Font_Leelawadee UI Bold'.
+        
+    self assert: readData = #('SEGOEUIB.TTF,Segoe UI Bold,110,82' 'SEGOEUIB.TTF,Segoe UI Bold' 'MEIRYOB.TTC,Meiryo UI Bold,120,96' 
+                              'MEIRYOB.TTC,Meiryo UI Bold' 'MSJHBD.TTC,Microsoft JhengHei UI Bold,120,96' 'MSJHBD.TTC,Microsoft JhengHei UI Bold'
+                              'MSYHBD.TTC,Microsoft YaHei UI Bold,128,96' 'MSYHBD.TTC,Microsoft YaHei UI Bold' 'MALGUNBD.TTF,Malgun Gothic Bold,118,96'
+                              'MALGUNBD.TTF,Malgun Gothic Bold' 'YUGOTHB.TTC,Yu Gothic UI Bold,128,96' 'YUGOTHB.TTC,Yu Gothic UI Bold' 'SEGUISYM.TTF,Segoe UI Symbol') 
+
+    "
+     self run:#testReadValueNamed_REG_MULTI_SZ_01
+     self new testReadValueNamed_REG_MULTI_SZ_01
+    "
+
+    "Created: / 16-11-2018 / 12:30:24 / svestkap"
+!
+
+testReadValueNamed_REG_MULTI_SZ_02
+    "Testing if REG_MULTI_SZ values are read correctly via valueNamed:"
+
+    | readData testingRegistryPath |
+        
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    readData := testingRegistryPath valueNamed: 'ř ž č ルすしか'.
+        
+    self assert: readData = #('''Testing Unicode chars ř ž č ルすしかき'')'
+                              'SEGOEUIB.TTF,Segoe UI Bold,110,82' 'SEGOEUIB.TTF,Segoe UI Bold' 'MEIRYOB.TTC,Meiryo UI Bold,120,96' 
+                              'MEIRYOB.TTC,Meiryo UI Bold' 'MSJHBD.TTC,Microsoft JhengHei UI Bold,120,96' 'MSJHBD.TTC,Microsoft JhengHei UI Bold'
+                              'MSYHBD.TTC,Microsoft YaHei UI Bold,128,96' 'MSYHBD.TTC,Microsoft YaHei UI Bold' 'MALGUNBD.TTF,Malgun Gothic Bold,118,96'
+                              'MALGUNBD.TTF,Malgun Gothic Bold' 'YUGOTHB.TTC,Yu Gothic UI Bold,128,96' 'YUGOTHB.TTC,Yu Gothic UI Bold' 'SEGUISYM.TTF,Segoe UI Symbol') 
+
+    "
+     self run:#testReadValueNamed_REG_MULTI_SZ_02
+     self new testReadValueNamed_REG_MULTI_SZ_02
+    "
+
+    "Created: / 16-11-2018 / 12:35:57 / svestkap"
+!
+
+testReadValueNamed_REG_MULTI_SZ_03
+    "Testing if empty REG_MULTI_SZ value is read correctly via valueNamed:"
+
+    | readData testingRegistryPath |
+        
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    readData := testingRegistryPath valueNamed: 'testEmptyMultiSZ'.
+    
+    self assert: readData isEmpty
+
+    "
+     self run:#testReadValueNamed_REG_MULTI_SZ_03
+     self new testReadValueNamed_REG_MULTI_SZ_03
+    "
+
+    "Created: / 03-12-2018 / 10:59:48 / svestkap"
+!
+
+testReadValueNamed_REG_QWORD_01
+    "Testing if REG_QWORD values are read correctly via valueNamed:
+     The read value is a QWORD maximum value"
+
+    | readData testingRegistryPath |
+    
+    readData := Unicode16String new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    readData := testingRegistryPath valueNamed: 'qword_max'.
+        
+    self assert: readData = 18446744073709551615.
+
+    "
+     self run:#testReadValueNamed_REG_QWORD_01
+     self new testReadValueNamed_REG_QWORD_01
+    "
+
+    "Created: / 16-11-2018 / 12:25:47 / svestkap"
+    "Modified (comment): / 05-12-2018 / 12:38:09 / svestkap"
+!
+
+testReadValueNamed_REG_QWORD_02
+    "Testing if REG_QWORD values are read correctly via valueNamed:"
+
+    | readData testingRegistryPath |
+    
+    readData := Unicode16String new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    readData := testingRegistryPath valueNamed: 'qwordvalue'.
+        
+    self assert: readData = 8751636011737964973.
+
+    "
+     self run:#testReadValueNamed_REG_QWORD_02
+     self new testReadValueNamed_REG_QWORD_02
+    "
+
+    "Created: / 16-11-2018 / 12:26:23 / svestkap"
+!
+
+testReadValueNamed_REG_QWORD_03
+    "Testing if REG_QWORD values are read correctly via valueNamed:"
+
+    | readData testingRegistryPath |
+    
+    readData := Unicode16String new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    readData := testingRegistryPath valueNamed: 'すし'.
+        
+    self assert: readData asSmallInteger = 44527.
+
+    "
+     self run:#testReadValueNamed_REG_QWORD_03
+     self new testReadValueNamed_REG_QWORD_03
+    "
+
+    "Created: / 16-11-2018 / 12:27:17 / svestkap"
+    "Modified: / 20-11-2018 / 12:25:05 / svestkap"
+!
+
+testReadValueNamed_REG_SZ_01
+    "Testing if REG_SZ values are read correctly via valueNamed:"
+
+    | readData testingRegistryPath |
+    
+    readData := Unicode16String new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    readData := testingRegistryPath valueNamed: 'bledesu'.
+    
+    self assert: readData = '''Testing Unicode chars ř ž č ルすしかき'').          '.
+    
+    "
+     self run:#testReadValueNamed_REG_SZ_01
+     self new testReadValueNamed_REG_SZ_01
+    "
+
+    "Created: / 16-11-2018 / 12:14:59 / svestkap"
+!
+
+testReadValueNamed_REG_SZ_02
+    "Testing if REG_SZ values are read correctly via valueNamed:"
+
+    | readData testingRegistryPath |
+    
+    readData := Unicode16String new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    readData := testingRegistryPath valueNamed: ' ř ž č ル.          '.
+        
+    self assert: readData = 'Testing Unicode chars ř ž č ルすしかき'.    
+
+    "
+     self run:#testReadValueNamed_REG_SZ_02
+     self new testReadValueNamed_REG_SZ_02
+    "
+
+    "Created: / 16-11-2018 / 12:15:17 / svestkap"
+!
+
+testReadValueNamed_REG_SZ_03
+    "Testing if REG_SZ values are read correctly via valueNamed:"
+
+    | readData testingRegistryPath |
+    
+    readData := Unicode16String new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    readData := testingRegistryPath valueNamed: 'しかき    '.
+        
+    self assert: readData = 'Testus gradus'.
+
+    "
+     self run:#testReadValueNamed_REG_SZ_03
+     self new testReadValueNamed_REG_SZ_03
+    "
+
+    "Created: / 16-11-2018 / 12:21:59 / svestkap"
+!
+
+testReadValueNamed_REG_SZ_04
+    "Testing if empty REG_SZ value is read correctly via valueNamed:"
+
+    | readData testingRegistryPath |
+    
+    readData := Unicode16String new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    readData := testingRegistryPath valueNamed: 'emptyToTest'.
+    
+    self assert: readData isEmpty.
+    
+    "
+     self run:#testReadValueNamed_REG_SZ_04
+     self new testReadValueNamed_REG_SZ_04
+    "
+
+    "Created: / 03-12-2018 / 10:56:11 / svestkap"
+!
+
+testReadValueNamed_nonStringValue
+    "Testing reading non-string value from Registry via valueNamed
+     User should see a warning message in Transcript"
+
+    | readData testingRegistryPath |
+    
+    readData := Unicode16String new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    readData := testingRegistryPath valueNamed: 11.
+        
+    self assert: readData isNil.
+
+    "
+     self run:#testReadValueNamed_nonStringValue
+     self new testReadValueNamed_nonStringValue
+    "
+
+    "Created: / 05-12-2018 / 12:40:31 / svestkap"
+! !
+
+!Win32OperatingSystemTest methodsFor:'tests-unicodeReadEnumeration'!
+
+testReadAllSubKeysDo_MaxPath
+    "reading via allSubKeysDo (using subKeyAtIndex:) with max Path
+     The path is suppassing the Microsoft limit - for more information see testReadSubKeyAtIndex_MaxPath_01"
+
+    | readData testingRegistryPath |
+
+    readData := OrderedCollection new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: 
+        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').        
+    
+    testingRegistryPath  allSubKeysDo: [ :subEntry |
+        readData add: subEntry
+    ].     
+    
+    self assert: readData notEmptyOrNil.    
+    self assert: readData size = 3.
+    "/ this is normally unreachable subKey (subkey actually called 'unreachable')
+    self assert: (readData at: 2) path size = 575.
+    
+    readData := readData copy collect: [ :subEntry | subEntry path copyAfterLast: $\ ].
+
+    self assert: readData size = 3.    
+    self assert: (readData first endsWith: '|end').
+    self assert: readData second = 'unreachable'.
+    self assert: readData third = 'reachable'
+
+    "
+     self run:#testReadAllSubKeysDo_MaxPath
+     self new testReadAllSubKeysDo_MaxPath
+    "
+
+    "Created: / 05-12-2018 / 12:40:53 / svestkap"
+!
+
+testReadRemoteKeyOnHost
+    "Reading remote registry via remoteKeyOnHost:
+     Note: a key must be a predefined key for more see: 
+     https://docs.microsoft.com/en-us/windows/desktop/SysInfo/predefined-keys"
+
+    | testingRegistryPath remoteRegistry readData  |
+    
+    "/ HKEY_CURRENT_USER is one of the predefined keys
+    testingRegistryPath := Win32OperatingSystem registryEntry key: 'HKEY_CURRENT_USER'.        
+    "/ testing done on localhost
+    remoteRegistry := testingRegistryPath remoteKeyOnHost: 'localhost'.
+    readData := remoteRegistry subKeys.
+    
+    readData := readData copy collect: [ :subEntry | (subEntry path copyAfterLast: $\) asLowercase ].
+    
+    self assert: readData notEmptyOrNil.    
+    self assert: (readData includes: 'software').    
+
+    "
+     self run:#testReadRemoteKeyOnHost
+     self new testReadRemoteKeyOnHost
+    "
+
+    "Created: / 05-12-2018 / 12:41:06 / svestkap"
+!
+
+testReadSubKeyNamesAndClassesDo_MaxPath
+    "reading SubKeyNamesAndClasses with max Path
+     The path is suppassing the Microsoft limit - for more information see testReadSubKeyNamesAndClassesAtIndex_MaxPath_01"
+
+    | readData testingRegistryPath |
+
+    readData := OrderedDictionary new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: 
+        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').        
+    
+    testingRegistryPath  subKeyNamesAndClassesDo: [  :name :className |
+        readData at: name put: className.
+    ].     
+
+    self assert: readData notEmptyOrNil.
+    self assert: readData size = 2.
+    self assert: (readData at: 'reachable') isEmpty. "/ the class is empty
+
+    "
+     self run:#testReadSubKeyNamesAndClassesDo_MaxPath
+     self new testReadSubKeyNamesAndClassesDo_MaxPath
+    "
+
+    "Created: / 05-12-2018 / 12:41:31 / svestkap"
+!
+
+testReadSubKeysDo_MaxPath
+    "reading via subKeysDo (using subKeyAtIndex:) with max Path
+     The path is suppassing the Microsoft limit - for more information see testReadSubKeyAtIndex_MaxPath_01"
+
+    | readData testingRegistryPath |
+
+    readData := OrderedCollection new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: 
+        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').        
+    
+    testingRegistryPath  subKeysDo: [ :subEntry |
+        readData add: subEntry
+    ].     
+    
+    self assert: readData notEmptyOrNil.    
+    self assert: readData size = 2.    
+    self assert: (readData first) path size = 563.
+    
+    readData := readData copy collect: [ :subEntry | subEntry path copyAfterLast: $\ ].
+
+    self assert: readData size = 2.    
+    self assert: (readData first endsWith: '|end').
+    self assert: readData second = 'reachable'.
+
+    "
+     self run:#testReadSubKeysDo_MaxPath
+     self new testReadSubKeysDo_MaxPath
+    "
+
+    "Created: / 05-12-2018 / 12:41:49 / svestkap"
+!
+
+testReadSubKeys_MaxPath
+    "reading via subKeys (using subKeyAtIndex:) with max Path
+     The path is suppassing the Microsoft limit - for more information see testReadSubKeyAtIndex_MaxPath_01"
+
+    | readData testingRegistryPath |
+    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: 
+        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').        
+    
+    readData := testingRegistryPath subKeys.
+    
+    self assert: readData notEmptyOrNil.    
+    self assert: readData size = 2.    
+    self assert: (readData first) path size = 563.
+    
+    readData := readData copy collect: [ :subEntry | subEntry path copyAfterLast: $\ ].
+
+    self assert: readData size = 2.    
+    self assert: (readData first endsWith: '|end').
+    self assert: readData second = 'reachable'.
+
+    "
+     self run:#testReadSubKeys_MaxPath
+     self new testReadSubKeys_MaxPath
+    "
+
+    "Created: / 05-12-2018 / 12:41:59 / svestkap"
+!
+
+testReadValueNamesAndValuesDo_MaxPath
+    "reading via #valueNamesAndValuesDo: (using #valueNameAtIndex:) with max Path
+     The path is suppassing the Microsoft limit - for more information see testReadValueNameAtIndex_01"
+
+    | readData testingRegistryPath |
+
+    readData := OrderedDictionary new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: 
+        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').        
+    
+    testingRegistryPath valueNamesAndValuesDo: [ :name :value |
+        readData at: name put: value
+    ].     
+    
+    self assert: readData notEmptyOrNil.    
+    self assert: readData size = 3.    
+    self assert: readData first =  ('testing'->' ルすしか').
+    self assert: (readData at: 'か')= 2.
+    self assert: readData second = 2.
+    self assert: (readData at: '256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end') 
+        = 'Longer_than_256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|endsdfsdfasdfasdfasdfjlkasdjflkasjdflkjasdlfjaslkdfjlkasdjflkasdflksadlkjsadlfalsdfůlasdjflkasdjflkasjdflkůjasdflůkjasdlůfjalsůkdjflůksd'.
+    self assert: readData third = 'Longer_than_256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|endsdfsdfasdfasdfasdfjlkasdjflkasjdflkjasdlfjaslkdfjlkasdjflkasdflksadlkjsadlfalsdfůlasdjflkasdjflkasjdflkůjasdflůkjasdlůfjalsůkdjflůksd'.
+
+    "  
+     self run:#testReadValueNamesAndValuesDo_MaxPath
+     self new testReadValueNamesAndValuesDo_MaxPath
+    "
+
+    "Created: / 05-12-2018 / 12:43:05 / svestkap"
+!
+
+testReadValueNamesAndValuesDo_REG_SZ_01
+    "Testing if REG_SZ values are read correctly via valueNamesAndValuesDo:"
+
+    | readData testingRegistryPath |
+    
+    readData := OrderedDictionary new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    testingRegistryPath valueNamesAndValuesDo: [ :name :data |
+        readData at: name put: data
+    ].
+    
+    self assert: (readData at: 'bledesu') = '''Testing Unicode chars ř ž č ルすしかき'').          '.
+    
+    "
+     self run:#testReadValueNamesAndValuesDo_REG_SZ_01
+     self new testReadValueNamesAndValuesDo_REG_SZ_01
+    "
+
+    "Created: / 16-11-2018 / 12:15:52 / svestkap"
+!
+
+testReadValueNamesAndValuesDo_REG_SZ_02
+    "Testing if REG_SZ values are read correctly via valueNamesAndValuesDo:"
+
+    | readData testingRegistryPath |
+    
+    readData := OrderedDictionary new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    testingRegistryPath valueNamesAndValuesDo: [ :name :data |
+        readData at: name put: data
+    ].
+    
+    self assert: (readData at: ' ř ž č ル.          ') = 'Testing Unicode chars ř ž č ルすしかき'.    
+
+    "
+     self run:#testReadValueNamesAndValuesDo_REG_SZ_02
+     self new testReadValueNamesAndValuesDo_REG_SZ_02
+    "
+
+    "Created: / 05-12-2018 / 12:43:35 / svestkap"
+!
+
+testReadValueNamesDo_MaxPath
+    "reading via #valueNamesDo: (using #valueNameAtIndex:) with max Path
+     The path is suppassing the Microsoft limit - for more information see testReadValueNameAtIndex_01"
+
+    | readData readDataValue testingRegistryPath |
+
+    readData := OrderedCollection new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: 
+        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').        
+    
+    testingRegistryPath valueNamesDo: [ :subEntry |
+        readData add: subEntry
+    ].     
+    
+    self assert: readData notEmptyOrNil.    
+    self assert: readData size = 3.    
+    self assert: readData first = 'testing'.
+    self assert: readData second = 'か'.
+    self assert: readData third = '256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end'.
+    
+    readDataValue := testingRegistryPath valueNamed: readData third.  
+    
+    "/ MSDN limits: Value name 16,383 characters (@Windows 2000: 260 ANSI characters or 16,383 Unicode characters)
+    "/ the following tests 401 characters       
+    self assert: readDataValue = 'Longer_than_256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|endsdfsdfasdfasdfasdfjlkasdjflkasjdflkjasdlfjaslkdfjlkasdjflkasdflksadlkjsadlfalsdfůlasdjflkasdjflkasjdflkůjasdflůkjasdlůfjalsůkdjflůksd'.
+    "
+     self run:#testReadValueNamesDo_MaxPath
+     self new testReadValueNamesDo_MaxPath
+    "
+
+    "Created: / 05-12-2018 / 12:43:49 / svestkap"
+!
+
+testReadValueNames_MaxPath
+    "reading via #valueNames (using #valueNameAtIndex:) with max Path
+     The path is suppassing the Microsoft limit - for more information see testReadValueNameAtIndex_01"
+
+    | readData testingRegistryPath |
+
+    testingRegistryPath := Win32OperatingSystem registryEntry key: 
+        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').        
+    
+    readData := testingRegistryPath valueNames.
+    
+    self assert: readData isArray.
+    self assert: readData notEmptyOrNil.    
+    self assert: readData size = 3.    
+    self assert: readData first = 'testing'.
+    self assert: readData second = 'か'.
+    self assert: readData third = '256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end'.
+
+    "  
+     self run:#testReadValueNames_MaxPath
+     self new testReadValueNames_MaxPath
+    "
+
+    "Created: / 05-12-2018 / 12:44:16 / svestkap"
+!
+
+testReadvalueNamesAndValuesDo_MaxPath_01
+    "reading via #valueNamesAndValuesDo: (using #valueNameAtIndex:) with max Path
+     The path is suppassing the Microsoft limit - for more information see testReadValueNameAtIndex_01"
+
+    | readData testingRegistryPath |
+
+    readData := OrderedDictionary new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: 
+        (registryPath,'\', ' ルすしか\256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end').        
+    
+    testingRegistryPath valueNamesAndValuesDo: [ :name :value |
+        readData at: name put: value
+    ].     
+    
+    self assert: readData notEmptyOrNil.    
+    self assert: readData size = 3.    
+    self assert: readData first =  ('testing'->' ルすしか').
+    self assert: (readData at: 'か')= 2.
+    self assert: readData second = 2.
+    self assert: (readData at: '256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|end') 
+        = 'Longer_than_256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|endsdfsdfasdfasdfasdfjlkasdjflkasjdflkjasdlfjaslkdfjlkasdjflkasdflksadlkjsadlfalsdfůlasdjflkasdjflkasjdflkůjasdflůkjasdlůfjalsůkdjflůksd'.
+    self assert: readData third = 'Longer_than_256_chars_max_long|arsdfasdfjljljasdf;jl;jljsfasdfasdfljaslkdfjkasdfljalsd;jfa;lsdjflkasjdflkajsdflkjasdflkjsadlfjasldfjlsadjflksdjflksadjflkajsdflkjasdlfjalskdjflkasdjflkasdfkj;sdaf;kljkkjkklkjjjjkas|1asdfjsldfjlasdlfjlasdjfljasdlfjalsdjflajdfsdsasdfa|endsdfsdfasdfasdfasdfjlkasdjflkasjdflkjasdlfjaslkdfjlkasdjflkasdflksadlkjsadlfalsdfůlasdjflkasdjflkasjdflkůjasdflůkjasdlůfjalsůkdjflůksd'.
+
+    "  
+     self run:#testReadvalueNamesAndValuesDo_MaxPath_01
+     self new testReadvalueNamesAndValuesDo_MaxPath_01
+    "
+
+    "Created: / 22-11-2018 / 14:10:34 / svestkap"
+!
+
+testReadvalueNamesAndValuesDo_REG_SZ_02
+    "Testing if REG_SZ values are read correctly via valueNamesAndValuesDo:"
+
+    | readData testingRegistryPath |
+    
+    readData := OrderedDictionary new.    
+    testingRegistryPath := Win32OperatingSystem registryEntry key: registryPath.
+     
+    testingRegistryPath valueNamesAndValuesDo: [ :name :data |
+        readData at: name put: data
+    ].
+    
+    self assert: (readData at: ' ř ž č ル.          ') = 'Testing Unicode chars ř ž č ルすしかき'.    
+
+    "
+     self run:#testReadvalueNamesAndValuesDo_REG_SZ_02
+     self new testReadvalueNamesAndValuesDo_REG_SZ_02
+    "
+
+    "Created: / 16-11-2018 / 12:16:16 / svestkap"
+! !
+
 !Win32OperatingSystemTest class methodsFor:'documentation'!
 
 version