rake-delphi 0.0.9 → 0.0.11
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.
- data/2 +336 -0
- data/Gemfile +2 -1
- data/lib/rake/common/logger.rb +1 -1
- data/lib/rake/delphi/androidmanifest.rb +57 -0
- data/lib/rake/delphi/dcc32.rb +58 -59
- data/lib/rake/delphi/dcc32tool.rb +51 -0
- data/lib/rake/delphi/dccaarmtool.rb +29 -0
- data/lib/rake/delphi/envvariables.rb +19 -22
- data/lib/rake/delphi/paclient.rb +251 -0
- data/lib/rake/delphi/paclienttool.rb +20 -0
- data/lib/rake/delphi/project.rb +4 -2
- data/lib/rake/delphi/projectinfo.rb +73 -1
- data/lib/rake/delphi/resources.rb +1 -1
- data/lib/rake/delphi/tool.rb +8 -1
- data/lib/rake/delphi/version.rb +1 -1
- data/lib/rake/helpers/gemversion.rb +11 -0
- data/lib/rake/helpers/raketask.rb +16 -0
- data/lib/rake/helpers/string.rb +13 -0
- data/rake-delphi-cygwin.env.cmd +11 -0
- data/rake-delphi-cygwin.env.sh +12 -0
- data/rake-delphi.gemspec +4 -1
- data/test/helpers/consts.rb +6 -1
- data/test/helpers/verinfo.rb +22 -3
- data/test/resources/testproject-android/AndroidManifest.erb +35 -0
- data/test/resources/testproject-android/AndroidManifest.xml +35 -0
- data/test/resources/testproject-android/Rakefile.rb +55 -0
- data/test/resources/testproject-android/TestProject.cfg +4 -0
- data/test/resources/testproject-android/TestProject.dpr +15 -0
- data/test/resources/testproject-android/TestProject.rc +62 -0
- data/test/resources/testproject-android/TestProject.res +0 -0
- data/test/resources/testproject-android/TestProject.xe5.dproj +373 -0
- data/test/resources/testproject-android/fmTest.fmx +26 -0
- data/test/resources/testproject-android/fmTest.pas +31 -0
- data/test/resources/testproject-android/local.resources.txt +1 -0
- data/test/resources/testproject-android/release.dcc.cfg +1 -0
- data/test/resources/testproject-android/resources.rc +1 -0
- data/test/resources/testproject-android/resources.res +0 -0
- data/test/resources/testproject/Rakefile.rb +1 -1
- data/test/test-delphi-android.rb +192 -0
- data/test/test-delphi.rb +3 -11
- data/test/test-envvariables.rb +7 -0
- data/test/test-gemversion.rb +11 -0
- data/test/test-projectinfo-android.rb +81 -0
- data/test/test-projectinfo.rb +0 -11
- data/test/test-string.rb +41 -0
- metadata +92 -6
- data/test/resources/testproject/testproject.cfg.1 +0 -8
- data/test/resources/testproject/testproject.drc +0 -210
@@ -0,0 +1,26 @@
|
|
1
|
+
object TestForm: TTestForm
|
2
|
+
Left = 0
|
3
|
+
Top = 0
|
4
|
+
Caption = 'TestForm'
|
5
|
+
ClientHeight = 567
|
6
|
+
ClientWidth = 384
|
7
|
+
FormFactor.Width = 320
|
8
|
+
FormFactor.Height = 480
|
9
|
+
FormFactor.Devices = [dkDesktop]
|
10
|
+
DesignerMobile = True
|
11
|
+
DesignerWidth = 384
|
12
|
+
DesignerHeight = 592
|
13
|
+
DesignerDeviceName = 'Google Nexus 4'
|
14
|
+
DesignerOrientation = 0
|
15
|
+
DesignerOSVersion = ''
|
16
|
+
object Button1: TButton
|
17
|
+
Height = 44.000000000000000000
|
18
|
+
Position.X = 24.000000000000000000
|
19
|
+
Position.Y = 32.000000000000000000
|
20
|
+
TabOrder = 0
|
21
|
+
Text = 'HW'
|
22
|
+
Trimming = ttCharacter
|
23
|
+
Width = 145.000000000000000000
|
24
|
+
OnClick = Button1Click
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
unit fmTest;
|
2
|
+
|
3
|
+
interface
|
4
|
+
|
5
|
+
uses
|
6
|
+
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
|
7
|
+
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls;
|
8
|
+
|
9
|
+
type
|
10
|
+
TTestForm = class(TForm)
|
11
|
+
Button1: TButton;
|
12
|
+
procedure Button1Click(Sender: TObject);
|
13
|
+
private
|
14
|
+
{ Private declarations }
|
15
|
+
public
|
16
|
+
{ Public declarations }
|
17
|
+
end;
|
18
|
+
|
19
|
+
var
|
20
|
+
TestForm: TTestForm;
|
21
|
+
|
22
|
+
implementation
|
23
|
+
|
24
|
+
{$R *.fmx}
|
25
|
+
|
26
|
+
procedure TTestForm.Button1Click(Sender: TObject);
|
27
|
+
begin
|
28
|
+
ShowMessage('Hello, world!');
|
29
|
+
end;
|
30
|
+
|
31
|
+
end.
|
@@ -0,0 +1 @@
|
|
1
|
+
-=WITH RESOURCES=-
|
@@ -0,0 +1 @@
|
|
1
|
+
-DRELEASE_CFG
|
@@ -0,0 +1 @@
|
|
1
|
+
LOCAL_RESOURCES RCDATA local.resources.txt
|
Binary file
|
@@ -30,7 +30,7 @@ namespace :test do
|
|
30
30
|
desc 'Preparation'
|
31
31
|
task :prepare, :useresources, :options do |t, opts|
|
32
32
|
_task = Rake::Task['test:compile']
|
33
|
-
dpr = Rake.application.define_task(Rake::Delphi::Project, (_task.
|
33
|
+
dpr = Rake.application.define_task(Rake::Delphi::Project, (_task.name + ':delphi').to_sym)
|
34
34
|
dpr[:resources_additional] = 'resources' if opts[:useresources]
|
35
35
|
if ENV['DELPHI_VERSION'].to_i >= 14
|
36
36
|
dpr[:platform] = 'Win32'
|
@@ -0,0 +1,192 @@
|
|
1
|
+
# vim: set shiftwidth=2 tabstop=2 expandtab:
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
require 'rake'
|
5
|
+
require 'fileutils'
|
6
|
+
require 'test/unit'
|
7
|
+
require 'rake/delphi/dccaarmtool'
|
8
|
+
require 'rake/helpers/unittest'
|
9
|
+
require 'rake/helpers/raketask'
|
10
|
+
require 'helpers/consts'
|
11
|
+
require 'helpers/verinfo'
|
12
|
+
require 'zip/zip'
|
13
|
+
require 'apktools/apkxml'
|
14
|
+
require 'xmlsimple'
|
15
|
+
|
16
|
+
module DelphiAndroidTests
|
17
|
+
|
18
|
+
class TestDelphiAndroid < DelphiTests::TestVerInfo
|
19
|
+
public
|
20
|
+
def project_path
|
21
|
+
PROJECT_PATH
|
22
|
+
end
|
23
|
+
|
24
|
+
def project_name
|
25
|
+
PROJECT_APK.pathmap('%n')
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
REQUIRED_FILES = %Q[META-INF/MANIFEST.MF
|
30
|
+
META-INF/ANDROIDD.SF
|
31
|
+
META-INF/ANDROIDD.RSA
|
32
|
+
lib/armeabi/libTestProject.so
|
33
|
+
AndroidManifest.xml
|
34
|
+
classes.dex
|
35
|
+
resources.arsc
|
36
|
+
res/drawable-hdpi/ic_launcher.png
|
37
|
+
res/drawable-ldpi/ic_launcher.png
|
38
|
+
res/drawable-mdpi/ic_launcher.png
|
39
|
+
res/drawable-xhdpi/ic_launcher.png
|
40
|
+
res/drawable-xxhdpi/ic_launcher.png].split(/\s+/)
|
41
|
+
|
42
|
+
def _test_apk(apk)
|
43
|
+
entries = []
|
44
|
+
Zip::ZipFile.open(apk) do |zip|
|
45
|
+
zip.each do |entry|
|
46
|
+
# test all files in .apk
|
47
|
+
assert REQUIRED_FILES.include?(entry.to_s), entry.to_s
|
48
|
+
entries << entry.to_s
|
49
|
+
end
|
50
|
+
end
|
51
|
+
REQUIRED_FILES.each do |file|
|
52
|
+
# test all required file
|
53
|
+
assert entries.include?(file), file
|
54
|
+
end
|
55
|
+
xml = ApkXml.new(apk)
|
56
|
+
manifest = xml.parse_xml('AndroidManifest.xml')
|
57
|
+
xml_hash = XmlSimple.xml_in(manifest, :ForceArray => false)
|
58
|
+
assert_equal '0x2', xml_hash['android:versionCode'], 'versionCode'
|
59
|
+
assert_equal '1.3.2.4', xml_hash['android:versionName'], 'versionName'
|
60
|
+
assert_equal 'TestProject', xml_hash['application']['activity']['meta-data']['android:value'], '<application><meta-data android:value>'
|
61
|
+
end
|
62
|
+
|
63
|
+
def _test_compile_and_output(prepare_args, output)
|
64
|
+
args = [:altercfg, :usecfg, :defines, :debuginfo, :debug, :includepaths]
|
65
|
+
# reinitialize arguments (even absent ones)
|
66
|
+
args.each do |arg|
|
67
|
+
prepare_args[arg] = prepare_args[arg]
|
68
|
+
end
|
69
|
+
|
70
|
+
bin_dir = File.dirname(apk)
|
71
|
+
dcu_dir_rel = '../../../tmp/android/dcu'
|
72
|
+
dcu_dir = bin_dir + '/../' + dcu_dir_rel
|
73
|
+
FileUtils.mkdir_p(bin_dir)
|
74
|
+
FileUtils.mkdir_p(dcu_dir)
|
75
|
+
# reenable task for subsequent calls
|
76
|
+
prepare_task = ::Rake::Task['test_android:prepare']
|
77
|
+
prepare_task.reenable
|
78
|
+
# prepare arguments
|
79
|
+
useresources = prepare_args[:useresources]
|
80
|
+
prepare_args.delete(:useresources)
|
81
|
+
prepare_args[:bin] = bin_dir
|
82
|
+
prepare_args[:version] = '1.3.2.4'
|
83
|
+
|
84
|
+
prepare_task.invoke(useresources, prepare_args)
|
85
|
+
|
86
|
+
# reenable tasks (!!! after invoking 'test_android:prepare')
|
87
|
+
task = ::Rake::Task['test_android:compile']
|
88
|
+
task.reenable_chain
|
89
|
+
task.invoke
|
90
|
+
|
91
|
+
assert(File.exists?(apk), 'File %s does not exist' % apk)
|
92
|
+
|
93
|
+
_test_apk(apk)
|
94
|
+
end
|
95
|
+
|
96
|
+
def apk
|
97
|
+
return PROJECT_APK % name.gsub(/[():]/, '_')
|
98
|
+
end
|
99
|
+
|
100
|
+
public
|
101
|
+
def setup
|
102
|
+
fail 'Cannot compile this project with Delphi below XE5' if ENV['DELPHI_VERSION'].to_i < 18
|
103
|
+
Rake::Delphi::DccARMTool.reinit
|
104
|
+
ENV['DELPHI_DIR'] = nil
|
105
|
+
super
|
106
|
+
ENV['RAKE_DIR'] = PROJECT_PATH
|
107
|
+
File.unlink(apk) if File.exists?(apk)
|
108
|
+
res = PROJECT_PATH + '/resources.res'
|
109
|
+
File.unlink(res) if File.exists?(res)
|
110
|
+
require PROJECT_PATH + '/Rakefile.rb'
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_compile
|
114
|
+
_test_compile_and_output({},
|
115
|
+
'testproject works')
|
116
|
+
end
|
117
|
+
|
118
|
+
def test_compile_defines
|
119
|
+
_test_compile_and_output({:defines => 'DEBUG'},
|
120
|
+
'DEBUG: testproject works')
|
121
|
+
end
|
122
|
+
|
123
|
+
def test_compile_debug_info
|
124
|
+
_test_compile_and_output({:debug => true, :debuginfo => true},
|
125
|
+
'D+: testproject works')
|
126
|
+
end
|
127
|
+
|
128
|
+
def test_compile_with_resources
|
129
|
+
_test_compile_and_output({:useresources => true, :defines => 'RESOURCES'},
|
130
|
+
'testproject works-=WITH RESOURCES=-')
|
131
|
+
end
|
132
|
+
|
133
|
+
def test_compile_with_libs
|
134
|
+
_test_compile_and_output({:useresources => true, :defines => 'LIBS'},
|
135
|
+
'testproject works-=WITH LIBS=-')
|
136
|
+
end
|
137
|
+
|
138
|
+
def test_compile_with_resources_and_libs
|
139
|
+
_test_compile_and_output({:useresources => true, :defines => 'RESOURCES,LIBS'},
|
140
|
+
'testproject works-=WITH RESOURCES=--=WITH LIBS=-')
|
141
|
+
end
|
142
|
+
|
143
|
+
def test_compile_consts
|
144
|
+
_test_compile_and_output({:defines => 'ASSIGNABLE_CONSTS', :writeableconst => true},
|
145
|
+
'testproject works-=ASSIGNED CONST=-')
|
146
|
+
end
|
147
|
+
|
148
|
+
def test_compile_alter_cfg
|
149
|
+
_test_compile_and_output({:altercfg => 'release.dcc.cfg'},
|
150
|
+
'testproject works-=RELEASE=-')
|
151
|
+
end
|
152
|
+
|
153
|
+
def test_compile_use_config
|
154
|
+
_test_compile_and_output({:usecfg => true},
|
155
|
+
'testproject works-=CONFIG=-')
|
156
|
+
end
|
157
|
+
|
158
|
+
def test_compile_use_absent_config
|
159
|
+
RakeFileUtils.verbose(Rake::Delphi::Logger.debug?) do
|
160
|
+
cfg = PROJECT_PATH.pathmap('%p%s') + PROJECT_APK.pathmap('%n.cfg')
|
161
|
+
mv cfg, cfg.pathmap('%X.absent.cfg')
|
162
|
+
begin
|
163
|
+
_test_compile_and_output({:usecfg => true},
|
164
|
+
'testproject works')
|
165
|
+
ensure
|
166
|
+
mv cfg.pathmap('%X.absent.cfg'), cfg
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
def test_compile_use_library_path
|
172
|
+
# usually Indy components are in Delphi library paths
|
173
|
+
_test_compile_and_output({:defines => 'INDY', :uselibrarypath => true},
|
174
|
+
'testproject works-=indy#path=-')
|
175
|
+
end
|
176
|
+
|
177
|
+
def test_compile_with_explicit_libs
|
178
|
+
paths = ['./ExplicitLib/']
|
179
|
+
_test_compile_and_output({:defines => 'EXPLICIT_LIBS',
|
180
|
+
:includepaths => paths},
|
181
|
+
'testproject works-=WITH EXPLICIT LIBS=-')
|
182
|
+
end
|
183
|
+
|
184
|
+
def test_compile_with_explicit_and_implicit_libs
|
185
|
+
paths = ['./ExplicitLib/']
|
186
|
+
_test_compile_and_output({:defines => 'LIBS,EXPLICIT_LIBS',
|
187
|
+
:includepaths => paths},
|
188
|
+
'testproject works-=WITH LIBS=--=WITH EXPLICIT LIBS=-')
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
192
|
+
end
|
data/test/test-delphi.rb
CHANGED
@@ -7,6 +7,7 @@ require 'rake/delphi'
|
|
7
7
|
require 'rake/delphi/project'
|
8
8
|
require 'rake/delphi/tool'
|
9
9
|
require 'rake/helpers/unittest'
|
10
|
+
require 'rake/helpers/raketask'
|
10
11
|
require 'helpers/consts'
|
11
12
|
require 'helpers/verinfo'
|
12
13
|
|
@@ -14,15 +15,6 @@ module DelphiTests
|
|
14
15
|
|
15
16
|
class TestDelphi < TestVerInfo
|
16
17
|
private
|
17
|
-
def reenable_tasks(task)
|
18
|
-
return unless task.class <= Rake::Task
|
19
|
-
task.reenable
|
20
|
-
task.prerequisites.each do |ptask|
|
21
|
-
ptask.reenable if ptask.class < Rake::Task
|
22
|
-
reenable_tasks(ptask)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
18
|
def _test_compile_and_output(prepare_args, output)
|
27
19
|
args = [:altercfg, :usecfg, :defines, :debuginfo, :debug, :includepaths]
|
28
20
|
# reinitialize arguments (even absent ones)
|
@@ -31,7 +23,7 @@ private
|
|
31
23
|
end
|
32
24
|
|
33
25
|
bin_dir = File.dirname(exe)
|
34
|
-
dcu_dir_rel = '
|
26
|
+
dcu_dir_rel = '../../../../tmp/win32/dcu'
|
35
27
|
dcu_dir = bin_dir + '/../' + dcu_dir_rel
|
36
28
|
FileUtils.mkdir_p(bin_dir)
|
37
29
|
FileUtils.mkdir_p(dcu_dir)
|
@@ -48,7 +40,7 @@ private
|
|
48
40
|
|
49
41
|
# reenable tasks (!!! after invoking 'test:prepare')
|
50
42
|
task = ::Rake::Task['test:compile']
|
51
|
-
|
43
|
+
task.reenable_chain
|
52
44
|
task.invoke
|
53
45
|
|
54
46
|
assert(File.exists?(exe), 'File %s does not exist' % exe)
|
data/test/test-envvariables.rb
CHANGED
@@ -18,6 +18,13 @@ class TestEnvVariables < Test::Unit::TestCase
|
|
18
18
|
assert_equal('c:/delphi directory/Lib', env_vars['BDSLIB'])
|
19
19
|
assert_equal('Platform: BDS platform', env_vars.expand('Platform: $(BDS_PLATFORM)'))
|
20
20
|
assert_equal('Platform: BDS platform case', env_vars.expand('Platform: $(bds_platform_case)'))
|
21
|
+
|
21
22
|
assert_equal('Env: $(BDS_NON_EXISTANT)', env_vars.expand('Env: $(BDS_NON_EXISTANT)'))
|
23
|
+
|
24
|
+
env_vars['BDS_PLATFORM_CASE_2'] = 'BDS Platform Case 2'
|
25
|
+
# be sure there is no BDS_Platform_Case_2 defined
|
26
|
+
assert_not_equal('BDS Platform Case 2', env_vars['BDS_Platform_Case_2'])
|
27
|
+
# also freeze string (ENV vars are frozen strings)
|
28
|
+
assert_equal('Platform: BDS Platform Case 2', env_vars.expand('Platform: $(BDS_Platform_Case_2)'.freeze))
|
22
29
|
end
|
23
30
|
end
|
data/test/test-gemversion.rb
CHANGED
@@ -28,6 +28,17 @@ public
|
|
28
28
|
assert_equal '1,2,3,4', Gem::VersionImproved.new('1.2.3.4').comma
|
29
29
|
end
|
30
30
|
|
31
|
+
def test_release_num
|
32
|
+
@version = Gem::VersionImproved.new('1.2.3.4')
|
33
|
+
assert_equal 3, @version.release_num
|
34
|
+
|
35
|
+
@version = Gem::VersionImproved.new('1.2.3')
|
36
|
+
assert_equal 2, @version.release_num
|
37
|
+
|
38
|
+
@version = Gem::VersionImproved.new('1.2')
|
39
|
+
assert_equal 1, @version.release_num
|
40
|
+
end
|
41
|
+
|
31
42
|
def test_prev_release
|
32
43
|
@version = Gem::VersionImproved.new('1.2.3.4')
|
33
44
|
assert_equal '1.2.2', @version.prev_release.version
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# encoding: Windows-1251
|
2
|
+
# vim: set shiftwidth=2 tabstop=2 expandtab:
|
3
|
+
|
4
|
+
require 'rake'
|
5
|
+
require 'test/unit'
|
6
|
+
require 'rake/delphi'
|
7
|
+
require 'rake/delphi/projectinfo'
|
8
|
+
require 'rake/delphi/dcc32'
|
9
|
+
require 'rake/helpers/unittest'
|
10
|
+
require 'helpers/consts'
|
11
|
+
require 'helpers/verinfo'
|
12
|
+
|
13
|
+
module DelphiAndroidTests
|
14
|
+
|
15
|
+
class TestVersionInfo < DelphiTests::TestVerInfo
|
16
|
+
private
|
17
|
+
def version
|
18
|
+
'XE5'
|
19
|
+
end
|
20
|
+
|
21
|
+
protected
|
22
|
+
def delphi_version
|
23
|
+
return '18'
|
24
|
+
end
|
25
|
+
|
26
|
+
def do_getinfo
|
27
|
+
@info = Rake::Delphi::XEVersionInfo.new(@rake_task)
|
28
|
+
end
|
29
|
+
|
30
|
+
def project_path
|
31
|
+
PROJECT_PATH
|
32
|
+
end
|
33
|
+
|
34
|
+
def project_name
|
35
|
+
PROJECT_APK.pathmap('%n')
|
36
|
+
end
|
37
|
+
|
38
|
+
public
|
39
|
+
def setup
|
40
|
+
super
|
41
|
+
@rake_task = Rake::Delphi::Dcc32Task.new('some-task-' + name, Rake.application)
|
42
|
+
@rake_task.systempath = project_path + '/TestProject.dpr'
|
43
|
+
do_getinfo
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_info
|
47
|
+
return unless prepare_ver_info_file?
|
48
|
+
assert_equal '4.3.2.1', @info['FileVersion']
|
49
|
+
assert_equal 'Rake', @info['CompanyName']
|
50
|
+
assert_equal 'Test rake-delphi project %s description' % version, @info['FileDescription']
|
51
|
+
assert_equal 'testproject.exe', @info['InternalName']
|
52
|
+
assert_equal 'Copyright. ��������', @info['LegalCopyright']
|
53
|
+
assert_equal 'Trademark. �������� �����', @info['LegalTrademarks']
|
54
|
+
assert_equal 'testproject.exe', @info['OriginalFilename']
|
55
|
+
assert_equal 'Test rake-delphi project %s product name' % version, @info['ProductName']
|
56
|
+
assert_equal '1.2.3.4', @info['ProductVersion']
|
57
|
+
assert_equal 'Test project comment', @info['Comments']
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_deploy_files
|
61
|
+
tested_deploymentFiles = []
|
62
|
+
tested_deploymentFiles_prefixes = { 36 => 'l', 48 => 'm', 72 => 'h', 96 => 'xh', 144 => 'xxh'}
|
63
|
+
[36, 48, 72, 96, 144].each do |n|
|
64
|
+
tested_deploymentFiles << '$(BDS)\bin\Artwork\Android\FM_LauncherIcon_%dx%d.png,res\drawable-%sdpi\,1,ic_launcher.png' % [n, n, tested_deploymentFiles_prefixes[n]]
|
65
|
+
end
|
66
|
+
tested_deploymentFiles << 'project_so,library\lib\armeabi\,1,libTestProject.so'
|
67
|
+
tested_deploymentFiles << '$(BDS)\lib\android\debug\classes.dex,classes\,1,classes.dex'
|
68
|
+
deploymentfiles = @info.deploymentfiles('Android')
|
69
|
+
assert deploymentfiles.kind_of?(Array), 'NOT an Array?!'
|
70
|
+
assert_not_equal 0, deploymentfiles.size, 'No files?!'
|
71
|
+
deploymentfiles.each do |dfile|
|
72
|
+
assert dfile.kind_of?(Hash), 'NOT a Hash?!'
|
73
|
+
assert_equal 1, dfile.keys.count, 'More than one value?!'
|
74
|
+
assert dfile.keys.first.kind_of?(String) || dfile.keys.first.kind_of?(Symbol), 'Key is NOT a String or Symbol?!'
|
75
|
+
assert dfile.values.first.kind_of?(Array), 'Value is NOT an Array?!'
|
76
|
+
assert tested_deploymentFiles.include?(dfile.to_a.join(',')), dfile.to_a.join(',')
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
data/test/test-projectinfo.rb
CHANGED
@@ -9,17 +9,6 @@ require 'rake/helpers/unittest'
|
|
9
9
|
require 'helpers/consts'
|
10
10
|
require 'helpers/verinfo'
|
11
11
|
|
12
|
-
module Rake
|
13
|
-
module Delphi
|
14
|
-
class BDSVersionInfo
|
15
|
-
# override method
|
16
|
-
def self.encoding
|
17
|
-
'Windows-1251'
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
12
|
module DelphiTests
|
24
13
|
|
25
14
|
class TestBDSVersionInfo < TestVerInfo
|