windows-pr 0.7.2 → 0.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,11 @@
1
1
  require 'windows/api'
2
+ require 'windows/msvcrt/string'
2
3
  include Windows
3
4
 
4
5
  module Windows
5
6
  module Unicode
7
+ include Windows::MSVCRT::String
8
+
6
9
  API.auto_namespace = 'Windows::Unicode'
7
10
  API.auto_constant = true
8
11
  API.auto_method = true
@@ -78,37 +81,33 @@ module Windows
78
81
  API.new('WideCharToMultiByte', 'ILPIPIPP', 'I')
79
82
 
80
83
  # Convenient wrapper methods
81
-
84
+
82
85
  # Maps a wide character string to a new character string using the
83
86
  # specified +encoding+. If no encoding is specified, then CP_UTF8
84
87
  # iss used if $KCODE is set to UTF8. Otherwise, CP_ACP is used.
85
88
  #
86
89
  # If the function fails it simply returns the string as-is.
87
90
  #
88
- # Maps a string to a wide (unicode) string using +encoding+. If no
89
- # encoding is specified, then CP_UTF8 is used if $KCODE is set to UTF8.
90
- # Otherwise, CP_ACP is used.
91
- #
92
- # If the function fails it simply returns the string as-is.
93
- #
94
91
  def multi_to_wide(string, encoding=nil)
95
92
  unless encoding
96
93
  encoding = ($KCODE == 'UTF8') ? CP_UTF8 : CP_ACP
97
94
  end
98
95
 
99
- buf = 0.chr * string.size * 2 # sizeof(WCHAR)
100
-
96
+ buf = ' ' * strlen(string) * 2
97
+
101
98
  int = MultiByteToWideChar(
102
99
  encoding,
103
100
  0,
104
101
  string,
105
- string.size,
102
+ strlen(string),
106
103
  buf,
107
- buf.size
104
+ strlen(buf)
108
105
  )
109
106
 
110
107
  if int > 0
111
- buf[0, int*2]
108
+ dest = ' ' * int * 2
109
+ wcsncpy(dest, buf, int)
110
+ dest
112
111
  else
113
112
  string
114
113
  end
@@ -125,21 +124,23 @@ module Windows
125
124
  encoding = ($KCODE == 'UTF8') ? CP_UTF8 : CP_ACP
126
125
  end
127
126
 
128
- buf = 0.chr * string.size
129
-
127
+ buf = ' ' * wcslen(string)
128
+
130
129
  int = WideCharToMultiByte(
131
130
  encoding,
132
131
  0,
133
132
  string,
134
- string.size/2,
133
+ wcslen(string),
135
134
  buf,
136
- buf.size,
135
+ strlen(buf),
137
136
  0,
138
137
  0
139
138
  )
140
139
 
141
140
  if int > 0
142
- buf[0, int]
141
+ dest = ' ' * int
142
+ strncpy(dest, buf, int)
143
+ dest
143
144
  else
144
145
  string
145
146
  end
@@ -0,0 +1,29 @@
1
+ #####################################################################
2
+ # tc_device_io.rb
3
+ #
4
+ # Test case for the Windows::DeviceIO module.
5
+ #####################################################################
6
+ require 'windows/device_io'
7
+ require 'test/unit'
8
+
9
+ class DeviceIOFoo
10
+ include Windows::DeviceIO
11
+ end
12
+
13
+ class TC_Windows_DeviceIO < Test::Unit::TestCase
14
+ def setup
15
+ @foo = DeviceIOFoo.new
16
+ end
17
+
18
+ def test_numeric_constants
19
+ assert_equal(0x00000001, DeviceIOFoo::FILE_DEVICE_BEEP)
20
+ end
21
+
22
+ def test_method_constants
23
+ assert_not_nil(DeviceIOFoo::DeviceIoControl)
24
+ end
25
+
26
+ def teardown
27
+ @foo = nil
28
+ end
29
+ end
@@ -0,0 +1,25 @@
1
+ #####################################################################
2
+ # tc_directory.rb
3
+ #
4
+ # Test case for the Windows::Directory module.
5
+ #####################################################################
6
+ require 'windows/directory'
7
+ require 'test/unit'
8
+
9
+ class DirectoryFoo
10
+ include Windows::Directory
11
+ end
12
+
13
+ class TC_Windows_Directory < Test::Unit::TestCase
14
+ def setup
15
+ @foo = DirectoryFoo.new
16
+ end
17
+
18
+ def test_method_constants
19
+ assert_not_nil(DirectoryFoo::CreateDirectory)
20
+ end
21
+
22
+ def teardown
23
+ @foo = nil
24
+ end
25
+ end
@@ -0,0 +1,38 @@
1
+ #####################################################################
2
+ # tc_file_mapping.rb
3
+ #
4
+ # Test case for the Windows::FileMapping module.
5
+ #####################################################################
6
+ require 'windows/file_mapping'
7
+ require 'test/unit'
8
+
9
+ class FileMappingFoo
10
+ include Windows::FileMapping
11
+ end
12
+
13
+ class TC_Windows_FileMapping < Test::Unit::TestCase
14
+
15
+ def setup
16
+ @foo = FileMappingFoo.new
17
+ end
18
+
19
+ def test_numeric_constants
20
+ assert_equal(0x00000001, FileMappingFoo::FILE_MAP_COPY)
21
+ assert_equal(0x00000002, FileMappingFoo::FILE_MAP_WRITE)
22
+ assert_equal(0x00000004, FileMappingFoo::FILE_MAP_READ)
23
+ assert_equal(983071, FileMappingFoo::FILE_MAP_ALL_ACCESS)
24
+ end
25
+
26
+ def test_method_constants
27
+ assert_not_nil(FileMappingFoo::CreateFileMapping)
28
+ assert_not_nil(FileMappingFoo::FlushViewOfFile)
29
+ assert_not_nil(FileMappingFoo::MapViewOfFile)
30
+ assert_not_nil(FileMappingFoo::MapViewOfFileEx)
31
+ assert_not_nil(FileMappingFoo::OpenFileMapping)
32
+ assert_not_nil(FileMappingFoo::UnmapViewOfFile)
33
+ end
34
+
35
+ def teardown
36
+ @foo = nil
37
+ end
38
+ end
@@ -0,0 +1,27 @@
1
+ #####################################################################
2
+ # tc_filesystem.rb
3
+ #
4
+ # Test case for the Windows::FileSystem module.
5
+ #####################################################################
6
+ require 'windows/filesystem'
7
+ require 'test/unit'
8
+
9
+ class FileSystemFoo
10
+ include Windows::FileSystem
11
+ end
12
+
13
+ class TC_Windows_FileSystem < Test::Unit::TestCase
14
+
15
+ def setup
16
+ @foo = FileSystemFoo.new
17
+ end
18
+
19
+ def test_method_constants
20
+ assert_not_nil(FileSystemFoo::GetDiskFreeSpace)
21
+ assert_not_nil(FileSystemFoo::GetDiskFreeSpaceEx)
22
+ end
23
+
24
+ def teardown
25
+ @foo = nil
26
+ end
27
+ end
data/test/tc_handle.rb ADDED
@@ -0,0 +1,36 @@
1
+ #####################################################################
2
+ # tc_handle.rb
3
+ #
4
+ # Test case for the Windows::Handle module.
5
+ #####################################################################
6
+ require 'windows/handle'
7
+ require 'test/unit'
8
+
9
+ class HandleFoo
10
+ include Windows::Handle
11
+ end
12
+
13
+ class TC_Windows_Handle < Test::Unit::TestCase
14
+
15
+ def setup
16
+ @foo = HandleFoo.new
17
+ end
18
+
19
+ def test_numeric_constants
20
+ assert_equal(-1, HandleFoo::INVALID_HANDLE_VALUE)
21
+ assert_equal(0x00000001, HandleFoo::HANDLE_FLAG_INHERIT)
22
+ assert_equal(0x00000002, HandleFoo::HANDLE_FLAG_PROTECT_FROM_CLOSE)
23
+ end
24
+
25
+ def test_method_constants
26
+ assert_not_nil(HandleFoo::CloseHandle)
27
+ assert_not_nil(HandleFoo::DuplicateHandle)
28
+ assert_not_nil(HandleFoo::GetHandleInformation)
29
+ assert_not_nil(HandleFoo::GetOSFHandle)
30
+ assert_not_nil(HandleFoo::OpenOSFHandle)
31
+ end
32
+
33
+ def teardown
34
+ @foo = nil
35
+ end
36
+ end
data/test/tc_limits.rb ADDED
@@ -0,0 +1,34 @@
1
+ #####################################################################
2
+ # tc_limits.rb
3
+ #
4
+ # Test case for the Windows::Limits module.
5
+ #####################################################################
6
+ require 'windows/limits'
7
+ require 'test/unit'
8
+
9
+ class LimitsFoo
10
+ include Windows::Limits
11
+ end
12
+
13
+ class TC_Windows_Limits < Test::Unit::TestCase
14
+
15
+ def setup
16
+ @foo = LimitsFoo.new
17
+ end
18
+
19
+ def test_numeric_constants
20
+ assert_equal(0x80, LimitsFoo::MINCHAR)
21
+ assert_equal(0x7f, LimitsFoo::MAXCHAR)
22
+ assert_equal(0x8000, LimitsFoo::MINSHORT)
23
+ assert_equal(0x7fff, LimitsFoo::MAXSHORT)
24
+ assert_equal(0x80000000, LimitsFoo::MINLONG)
25
+ assert_equal(0x7fffffff, LimitsFoo::MAXLONG)
26
+ assert_equal(0xff, LimitsFoo::MAXBYTE)
27
+ assert_equal(0xffff, LimitsFoo::MAXWORD)
28
+ assert_equal(0xffffffff, LimitsFoo::MAXDWORD)
29
+ end
30
+
31
+ def teardown
32
+ @foo = nil
33
+ end
34
+ end
@@ -0,0 +1,38 @@
1
+ #####################################################################
2
+ # tc_national.rb
3
+ #
4
+ # Test case for the Windows::National module.
5
+ #####################################################################
6
+ require 'windows/national'
7
+ require 'test/unit'
8
+
9
+ class NationalFoo
10
+ include Windows::National
11
+ end
12
+
13
+ class TC_Windows_National < Test::Unit::TestCase
14
+ def setup
15
+ @foo = NationalFoo.new
16
+ end
17
+
18
+ def test_numeric_constants
19
+ assert_equal(2048, NationalFoo::LANG_SYSTEM_DEFAULT)
20
+ assert_equal(1024, NationalFoo::LANG_USER_DEFAULT)
21
+ assert_equal(2048, NationalFoo::LOCALE_SYSTEM_DEFAULT)
22
+ assert_equal(1024, NationalFoo::LOCALE_USER_DEFAULT)
23
+ assert_equal(8323072, NationalFoo::LOCALE_INVARIANT)
24
+ end
25
+
26
+ def test_method_constants
27
+ assert_not_nil(NationalFoo::GetACP)
28
+ assert_not_nil(NationalFoo::GetDateFormat)
29
+ assert_not_nil(NationalFoo::GetLocaleInfo)
30
+ assert_not_nil(NationalFoo::GetSystemDefaultLangID)
31
+ assert_not_nil(NationalFoo::GetUserDefaultLangID)
32
+ assert_not_nil(NationalFoo::GetUserDefaultLCID)
33
+ end
34
+
35
+ def teardown
36
+ @foo = nil
37
+ end
38
+ end
@@ -0,0 +1,32 @@
1
+ #####################################################################
2
+ # tc_network_management.rb
3
+ #
4
+ # Test case for the Windows::NetworkManagement module.
5
+ #####################################################################
6
+ require 'windows/network_management'
7
+ require 'test/unit'
8
+
9
+ class NetworkManagementFoo
10
+ include Windows::NetworkManagement
11
+ end
12
+
13
+ class TC_Windows_NetworkManagement < Test::Unit::TestCase
14
+ def setup
15
+ @foo = NetworkManagementFoo.new
16
+ end
17
+
18
+ def test_numeric_constants
19
+ assert_equal(0, NetworkManagementFoo::NERR_Success)
20
+ assert_equal(-1, NetworkManagementFoo::MAX_PREFERRED_LENGTH)
21
+ assert_equal(0x00000001, NetworkManagementFoo::SV_TYPE_WORKSTATION)
22
+ end
23
+
24
+ def test_method_constants
25
+ assert_not_nil(NetworkManagementFoo::NetAlertRaise)
26
+ assert_not_nil(NetworkManagementFoo::NetAlertRaiseEx)
27
+ end
28
+
29
+ def teardown
30
+ @foo = nil
31
+ end
32
+ end
data/test/tc_nio.rb ADDED
@@ -0,0 +1,32 @@
1
+ #####################################################################
2
+ # tc_nio.rb
3
+ #
4
+ # Test case for the Windows::NIO module.
5
+ #####################################################################
6
+ require 'windows/nio'
7
+ require 'test/unit'
8
+
9
+ class NIOFoo
10
+ include Windows::NIO
11
+ end
12
+
13
+ class TC_Windows_NIO < Test::Unit::TestCase
14
+ def setup
15
+ @foo = NIOFoo.new
16
+ end
17
+
18
+ def test_numeric_constants
19
+ assert_equal(0, NIOFoo::OF_READ)
20
+ assert_equal(1, NIOFoo::OF_WRITE)
21
+ assert_equal(2, NIOFoo::OF_READWRITE)
22
+ end
23
+
24
+ def test_method_constants
25
+ assert_not_nil(NIOFoo::CancelIo)
26
+ assert_not_nil(NIOFoo::ReadFileScatter)
27
+ end
28
+
29
+ def teardown
30
+ @foo = nil
31
+ end
32
+ end
@@ -0,0 +1,57 @@
1
+ #####################################################################
2
+ # tc_service.rb
3
+ #
4
+ # Test case for the Windows::Service module.
5
+ #####################################################################
6
+ require 'windows/service'
7
+ require 'test/unit'
8
+
9
+ class ServiceFoo
10
+ include Windows::Service
11
+ end
12
+
13
+ class TC_Windows_Service < Test::Unit::TestCase
14
+ def setup
15
+ @foo = ServiceFoo.new
16
+ end
17
+
18
+ def test_numeric_constants
19
+ assert_equal(0, ServiceFoo::SC_ACTION_NONE)
20
+ assert_equal(1, ServiceFoo::SC_ACTION_RESTART)
21
+ assert_equal(2, ServiceFoo::SC_ACTION_REBOOT)
22
+ assert_equal(3, ServiceFoo::SC_ACTION_RUN_COMMAND)
23
+ end
24
+
25
+ def test_method_constants
26
+ assert_not_nil(ServiceFoo::ChangeServiceConfig)
27
+ assert_not_nil(ServiceFoo::ChangeServiceConfig2)
28
+ assert_not_nil(ServiceFoo::CloseServiceHandle)
29
+ assert_not_nil(ServiceFoo::ControlService)
30
+ assert_not_nil(ServiceFoo::CreateService)
31
+ assert_not_nil(ServiceFoo::DeleteService)
32
+ assert_not_nil(ServiceFoo::EnumDependentServices)
33
+ assert_not_nil(ServiceFoo::EnumServicesStatus)
34
+ assert_not_nil(ServiceFoo::EnumServicesStatusEx)
35
+ assert_not_nil(ServiceFoo::GetServiceDisplayName)
36
+ assert_not_nil(ServiceFoo::GetServiceKeyName)
37
+ assert_not_nil(ServiceFoo::LockServiceDatabase)
38
+ assert_not_nil(ServiceFoo::NotifyBootConfigStatus)
39
+ assert_not_nil(ServiceFoo::OpenSCManager)
40
+ assert_not_nil(ServiceFoo::OpenService)
41
+ assert_not_nil(ServiceFoo::QueryServiceConfig)
42
+ assert_not_nil(ServiceFoo::QueryServiceConfig2)
43
+ assert_not_nil(ServiceFoo::QueryServiceStatus)
44
+ assert_not_nil(ServiceFoo::QueryServiceStatusEx)
45
+ assert_not_nil(ServiceFoo::RegisterServiceCtrlHandler)
46
+ assert_not_nil(ServiceFoo::RegisterServiceCtrlHandlerEx)
47
+ assert_not_nil(ServiceFoo::SetServiceBits)
48
+ assert_not_nil(ServiceFoo::SetServiceStatus)
49
+ assert_not_nil(ServiceFoo::StartService)
50
+ assert_not_nil(ServiceFoo::StartServiceCtrlDispatcher)
51
+ assert_not_nil(ServiceFoo::UnlockServiceDatabase)
52
+ end
53
+
54
+ def teardown
55
+ @foo = nil
56
+ end
57
+ end