soda 1.3.7 → 1.3.9

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/bin/SodaSuite CHANGED
@@ -34,11 +34,12 @@ require 'rubygems'
34
34
  require 'Soda'
35
35
  require 'sodainfo'
36
36
  require 'getoptlong'
37
- require 'libxml'
38
37
  require 'watir'
39
38
  require 'SodaReportSummery'
40
39
  require 'SodaSuiteSummary'
41
40
  require 'pp'
41
+ require 'rexml/document'
42
+ include REXML
42
43
 
43
44
  ###############################################################################
44
45
  # SodaSuite -- Class
@@ -370,21 +371,26 @@ end
370
371
  def ReadConfigFile(configfile)
371
372
  parser = nil
372
373
  doc = nil
374
+ fd = nil
373
375
  data = {
374
376
  "gvars" => {},
375
377
  "cmdopts" => [],
376
378
  "errorskip" => []
377
379
  }
378
380
 
379
- parser = LibXML::XML::Parser.file(configfile)
380
- doc = parser.parse()
381
+ fd = File.new(configfile)
382
+ doc = REXML::Document.new(fd)
383
+ doc = doc.root
384
+
385
+ doc.elements.each do |node|
386
+ attrs = {}
387
+ node.attributes.each do |k,v|
388
+ attrs[k] = v
389
+ end
381
390
 
382
- doc.root.each do |node|
383
- attrs = node.attributes()
384
- attrs = attrs.to_h()
385
391
  name = attrs['name']
386
- content = node.content()
387
- case node.name
392
+ content = node.text
393
+ case (node.name)
388
394
  when "errorskip"
389
395
  data['errorskip'].push("#{attrs['type']}")
390
396
  when "gvar"
@@ -399,6 +405,8 @@ def ReadConfigFile(configfile)
399
405
  end
400
406
  end
401
407
 
408
+ fd.close()
409
+
402
410
  return data
403
411
  end
404
412
 
data/lib/Soda.rb CHANGED
@@ -60,6 +60,8 @@ require "fields/LiField"
60
60
  require 'thread'
61
61
  require 'date'
62
62
  require 'pp'
63
+ require 'rexml/document'
64
+ include REXML
63
65
 
64
66
  ###############################################################################
65
67
  # Soda -- Class
@@ -765,7 +767,7 @@ class Soda
765
767
  # is_restart: true/false, tells us that this is a restart test.
766
768
  #
767
769
  # Results:
768
- # on success returns a LibXML::Parser Document, or nil on error.
770
+ # on success returns a XML DOM Document, or nil on error.
769
771
  #
770
772
  ###############################################################################
771
773
  def getScript(file, is_restart = false)
@@ -2872,6 +2874,7 @@ JSCode
2872
2874
  hostname = hostname.chomp()
2873
2875
 
2874
2876
  suites.each do |s|
2877
+ print "SUITE: #{s}\n"
2875
2878
  base_suite_name = File.basename(s)
2876
2879
  if (results.key?(base_suite_name))
2877
2880
  suite_dup_id = 1
@@ -2945,14 +2948,15 @@ JSCode
2945
2948
  result = {}
2946
2949
  tests = []
2947
2950
  suite_name = File.basename(suitefile, ".xml")
2948
-
2951
+
2952
+ print "Running Suite: #{suitefile}\n"
2953
+
2949
2954
  begin
2950
- LibXML::XML::Error.set_handler(&LibXML::XML::Error::QUIET_HANDLER)
2951
- parser = LibXML::XML::Parser.file(suitefile)
2952
- doc = parser.parse()
2953
- doc = doc.root()
2955
+ fd = File.new(suitefile)
2956
+ doc = REXML::Document.new(fd)
2957
+ doc = doc.root
2954
2958
 
2955
- doc.each do |node|
2959
+ doc.elements.each do |node|
2956
2960
  next if (node.name =~ /text/i)
2957
2961
  next if (node.name =~ /comment/i)
2958
2962
 
@@ -2961,8 +2965,10 @@ JSCode
2961
2965
  " in suite file: '#{suitefile}'!"
2962
2966
  end
2963
2967
 
2964
- attrs = node.attributes()
2965
- attrs = attrs.to_h()
2968
+ attrs = {}
2969
+ node.attributes.each do |k,v|
2970
+ attrs[k] = "#{v}"
2971
+ end
2966
2972
 
2967
2973
  if (attrs.key?('file'))
2968
2974
  tests.push(attrs['file'])
@@ -2974,6 +2980,8 @@ JSCode
2974
2980
  end
2975
2981
  end
2976
2982
  end
2983
+
2984
+ fd.close()
2977
2985
  rescue Exception => e
2978
2986
  SodaUtils.PrintSoda(e.message, SodaUtils::ERROR)
2979
2987
  err_hash = {
@@ -31,9 +31,10 @@
31
31
  require 'rubygems'
32
32
  require 'getoptlong'
33
33
  require 'date'
34
- require 'libxml'
35
34
  require 'pp'
36
35
  require 'SodaReportSummery'
36
+ require 'rexml/document'
37
+ include REXML
37
38
 
38
39
  $HTML_HEADER = <<HTML
39
40
  <html>
@@ -688,7 +689,7 @@ def GetTestInfo(kids)
688
689
  next if (kid.name =~ /text/i)
689
690
  name = kid.name
690
691
  name = name.gsub("_", " ")
691
- test_info[name] = kid.content()
692
+ test_info[name] = kid.text
692
693
  end
693
694
 
694
695
  return test_info
@@ -708,14 +709,15 @@ end
708
709
  def GenerateReportData(files)
709
710
  test_info = {}
710
711
  test_info_list = []
712
+ fd = nil
711
713
 
712
714
  files.each do |f|
713
715
  print "(*)Reading XML file: #{f}\n"
714
716
 
715
717
  begin
716
- parser = LibXML::XML::Parser.file(f)
717
- LibXML::XML::Error.set_handler(&LibXML::XML::Error::QUIET_HANDLER)
718
- doc = parser.parse()
718
+ fd = File.new(f)
719
+ doc = REXML::Document.new(fd)
720
+ doc = doc.root
719
721
  rescue Exception => e
720
722
  print "(!)Error: Failed trying to parse XML file: '#{f}'!\n"
721
723
  print "--)Exception: #{e.message}\n"
@@ -725,22 +727,22 @@ def GenerateReportData(files)
725
727
  end
726
728
 
727
729
  suites = []
728
- doc.root.each do |suite|
730
+ doc.elements.each do |suite|
729
731
  next if (suite.name !~ /suite/)
730
732
  suites.push(suite)
731
733
  end
732
734
 
733
735
  suites.each do |suite|
734
736
  tmp_hash = {'tests' => []}
735
- suite.children.each do |kid|
737
+ suite.elements.each do |kid|
736
738
  case (kid.name)
737
739
  when "suitefile"
738
- tmp_hash['suitefile'] = kid.content()
740
+ tmp_hash['suitefile'] = kid.text
739
741
  when "test"
740
- tmp_test_data = GetTestInfo(kid.children)
742
+ tmp_test_data = GetTestInfo(kid.elements)
741
743
  tmp_hash['tests'].push(tmp_test_data)
742
744
  else
743
- tmp_hash[kid.name] = kid.content()
745
+ tmp_hash[kid.name] = kid.text
744
746
  end # end case #
745
747
  end
746
748
 
@@ -752,6 +754,8 @@ def GenerateReportData(files)
752
754
  print "(*)Finished.\n"
753
755
  end
754
756
 
757
+ fd.close()
758
+
755
759
  return test_info
756
760
  end
757
761
  private :GenerateReportData
data/lib/SodaTestCheck.rb CHANGED
@@ -31,7 +31,6 @@
31
31
  require 'rubygems'
32
32
  require 'getoptlong'
33
33
  require 'digest/md5'
34
- require 'libxml'
35
34
  require 'SodaXML'
36
35
  require 'SodaUtils'
37
36
 
@@ -111,19 +110,20 @@ class SodaTestCheck
111
110
  parser = nil
112
111
  doc = nil
113
112
  kids = nil
113
+ fd = nil
114
114
 
115
115
  begin
116
- LibXML::XML.default_line_numbers = true
117
- parser = LibXML::XML::Parser.file(@SODA_ELEMENTS_FILE)
118
- doc = parser.parse()
116
+ fd = File.new(@SODA_ELEMENTS_FILE)
117
+ doc = REXML::Document.new(fd)
118
+ doc = doc.root
119
119
  rescue Exception => e
120
120
  doc = nil
121
- @report.ReportException(e, false, @sodatest)
121
+ @report.ReportException(e, @sodatest)
122
122
  ensure
123
123
  end
124
124
 
125
125
  return nil if (doc == nil)
126
- return doc.root
126
+ return doc
127
127
  end
128
128
  ###############################################################################
129
129
  # ElementsXMLToData -- method
@@ -140,49 +140,48 @@ class SodaTestCheck
140
140
  elements = {}
141
141
  kids = nil
142
142
 
143
- if (!node.children?)
143
+ if (!node.has_elements?)
144
144
  return {}
145
145
  end
146
146
 
147
- kids = node.children()
147
+ kids = node.elements()
148
148
  kids.each do |kid|
149
- next if ( (kid.name == "text") || (!kid.children?) )
150
-
149
+ next if ( (kid.name == "text") )
151
150
  elements[kid.name] = Hash.new()
152
151
  elements[kid.name]['accessor_attributes'] = []
153
152
  elements[kid.name]['soda_attributes'] = []
154
153
 
155
- elems = kid.children()
154
+ elems = kid.elements()
156
155
  elems.each do |e|
157
156
  case (e.name)
158
157
  when "accessor_attributes"
159
- access_kids = e.children()
158
+ access_kids = e.elements()
160
159
  access_kids.each do |access|
161
160
  next if (access.name == "text")
162
- elements[kid.name]["accessor_attributes"].push(access.content)
161
+ elements[kid.name]["accessor_attributes"].push(access.text)
163
162
  end
164
163
  when "soda_attributes"
165
- access_kids = e.children()
164
+ access_kids = e.elements()
166
165
  access_kids.each do |access|
167
166
  next if (access.name == "text")
168
167
 
169
168
  if (access.name =~ /accessor/)
170
169
  elements[kid.name]["soda_attributes"].push(
171
- access.content)
170
+ access.text)
172
171
  end
173
172
 
174
- if (access.children?)
175
- access_kids = access.children()
173
+ if (access.has_elements?)
174
+ access_kids = access.elements()
176
175
  tmp_hash = {}
177
176
  tmp_hash[access.name] = []
178
177
  access_kids.each do |access_kid|
179
178
  next if (access_kid.name == "text")
180
- tmp_hash[access.name].push(access_kid.content)
179
+ tmp_hash[access.name].push(access_kid.text)
181
180
  end
182
181
  elements[kid.name]["soda_attributes"].push(tmp_hash)
183
182
  else
184
183
  elements[kid.name]["soda_attributes"].push(
185
- access.content)
184
+ access.text)
186
185
  end
187
186
  end
188
187
  end
@@ -234,7 +233,7 @@ class SodaTestCheck
234
233
  #
235
234
  ###############################################################################
236
235
  def CheckTest(sodadata, supported)
237
-
236
+
238
237
  sodadata.each do |test_hash|
239
238
  if (!test_hash.key?('do'))
240
239
  @report.ReportFailure("Failed to find expected test do "+
data/lib/SodaUtils.rb CHANGED
@@ -31,8 +31,9 @@
31
31
  require 'rbconfig'
32
32
  require 'time'
33
33
  require 'rubygems'
34
- require 'libxml'
35
34
  require 'uri'
35
+ require 'rexml/document'
36
+ include REXML
36
37
 
37
38
  ###############################################################################
38
39
  # SodaUtils -- Module
@@ -105,11 +106,13 @@ JS
105
106
  def SodaUtils.GetOsType
106
107
  os = ""
107
108
 
108
- if Config::CONFIG['host_os'] =~ /mswin/i
109
+ if (Config::CONFIG['host_os'] =~ /mswin/i)
109
110
  os = "WINDOWS"
110
- elsif Config::CONFIG['host_os'] =~ /linux/i
111
+ elsif (Config::CONFIG['host_os'] =~ /mingw32/i)
112
+ os = "WINDOWS"
113
+ elsif (Config::CONFIG['host_os'] =~ /linux/i)
111
114
  os = "LINUX"
112
- elsif Config::CONFIG['host_os'] =~ /darwin/i
115
+ elsif (Config::CONFIG['host_os'] =~ /darwin/i)
113
116
  os = "OSX"
114
117
  else
115
118
  os = Config::CONFIG['host_os'];
@@ -345,10 +348,12 @@ def SodaUtils.ParseBlockFile(block_file)
345
348
  error = false
346
349
  data = []
347
350
  doc = nil
351
+ fd = nil
348
352
 
349
353
  begin
350
- parser = LibXML::XML::Parser.file(block_file)
351
- doc = parser.parse()
354
+ fd = File.new(block_file)
355
+ doc = REXML::Document.new(fd)
356
+ doc = doc.root
352
357
  rescue Exception => e
353
358
  error = true
354
359
  data = []
@@ -360,17 +365,18 @@ def SodaUtils.ParseBlockFile(block_file)
360
365
  end
361
366
  end
362
367
 
363
- doc.root.each do |node|
368
+ doc.elements.each do |node|
364
369
  hash = Hash.new
365
370
 
366
371
  if (node.name != "block")
367
372
  next
368
373
  end
369
374
 
370
- for child in node.children()
371
- hash[child.name] = "#{child.content}"
375
+ node.elements.each do |child|
376
+ hash[child.name] = child.text
372
377
  end
373
378
 
379
+
374
380
  if (hash['testfile'].empty?)
375
381
  next
376
382
  end
@@ -378,6 +384,8 @@ def SodaUtils.ParseBlockFile(block_file)
378
384
  data.push(hash)
379
385
  end
380
386
 
387
+ fd.close() if (fd != nil)
388
+
381
389
  return data
382
390
  end
383
391
 
@@ -397,10 +405,12 @@ def SodaUtils.ParseWhiteFile(white_file)
397
405
  error = false
398
406
  data = []
399
407
  doc = nil
408
+ fd = nil
400
409
 
401
410
  begin
402
- parser = LibXML::XML::Parser.file(white_file)
403
- doc = parser.parse()
411
+ fd = File.new(white_file)
412
+ doc = REXML::Document.new(fd)
413
+ doc = doc.root
404
414
  rescue Exception => e
405
415
  error = true
406
416
  data = []
@@ -412,20 +422,22 @@ def SodaUtils.ParseWhiteFile(white_file)
412
422
  end
413
423
  end
414
424
 
415
- doc.root.each do |node|
425
+ doc.elements.each do |node|
416
426
  hash = Hash.new
417
427
 
418
428
  if (node.name != "white")
419
429
  next
420
430
  end
421
431
 
422
- for child in node.children()
423
- hash[child.name] = "#{child.content}"
432
+ node.elements.each do |child|
433
+ hash[child.name] = child.text
424
434
  end
425
435
 
426
436
  data.push(hash)
427
437
  end
428
438
 
439
+ fd.close() if (fd != nil)
440
+
429
441
  return data
430
442
  end
431
443
 
@@ -663,21 +675,25 @@ end
663
675
  def SodaUtils.ReadSodaConfig(configfile)
664
676
  parser = nil
665
677
  doc = nil
678
+ fd = nil
666
679
  data = {
667
680
  "gvars" => {},
668
681
  "cmdopts" => [],
669
682
  "errorskip" => []
670
683
  }
671
684
 
672
- parser = LibXML::XML::Parser.file(configfile)
673
- doc = parser.parse()
685
+ fd = File.new(white_file)
686
+ doc = REXML::Document.new(fd)
687
+ doc = doc.root
688
+ doc.elements.each do |node|
689
+ attrs = {}
690
+ node.attributes.each do |k,v|
691
+ attrs[k] = "#{v}"
692
+ end
674
693
 
675
- doc.root.each do |node|
676
- attrs = node.attributes()
677
- attrs = attrs.to_h()
678
694
  name = attrs['name']
679
- content = node.content()
680
- case node.name
695
+ content = node.text
696
+ case (node.name)
681
697
  when "errorskip"
682
698
  data['errorskip'].push("#{attrs['type']}")
683
699
  when "gvar"
data/lib/SodaXML.rb CHANGED
@@ -28,9 +28,9 @@
28
28
  ###############################################################################
29
29
  # Needed Ruby libs:
30
30
  ###############################################################################
31
- require 'rubygems'
32
- require 'libxml'
31
+ require 'rexml/document'
33
32
  require 'SodaUtils'
33
+ include REXML
34
34
 
35
35
  ###############################################################################
36
36
  # SodaXML -- Class
@@ -57,32 +57,32 @@ class SodaXML
57
57
  ###############################################################################
58
58
  def processChildren(node)
59
59
  children = []
60
-
61
- for child in node.children()
60
+
61
+ node.elements.each do |child|
62
62
  if (child.name == 'text')
63
63
  next
64
64
  end
65
65
 
66
66
  cur = Hash.new()
67
- cur['line_number'] = "#{child.line_num}"
67
+ cur['line_number'] = 0
68
68
  cur['do'] = "#{child.name}"
69
69
 
70
- case child.name
70
+ case (child.name)
71
71
  when /javascript/i
72
- cur['content'] = child.content
72
+ cur['content'] = child.text
73
73
  when /ruby/i
74
- cur['content'] = child.content
74
+ cur['content'] = child.text
75
75
  when /comment/i
76
- cur['content'] = child.content
76
+ cur['content'] = child.text
77
77
  when /whitelist/i
78
- cur['content'] = child.content
78
+ cur['content'] = child.text
79
79
  end
80
80
 
81
- child.attributes.each do | attribute |
82
- cur[attribute.name] = "#{attribute.value}"
81
+ child.attributes.each do |k,v|
82
+ cur[k] = "#{v}"
83
83
  end
84
84
 
85
- if child.children?()
85
+ if child.has_elements?()
86
86
  cur['children'] = self.processChildren(child)
87
87
  end
88
88
 
@@ -107,16 +107,17 @@ class SodaXML
107
107
  data = nil
108
108
  parser = nil
109
109
  doc = nil
110
-
110
+ fd = nil
111
+
111
112
  begin
112
- LibXML::XML.default_line_numbers = true
113
- parser = LibXML::XML::Parser.file(file)
114
- doc = parser.parse()
115
- data = processChildren(doc.root)
113
+ fd = File.new(file)
114
+ doc = REXML::Document.new(fd)
115
+ data = processChildren(doc.root)
116
+ fd.close()
116
117
  rescue Exception => e
117
118
  $curSoda.rep.log("Failed to parse XML file: \"#{file}\"!\n",
118
119
  SodaUtils::ERROR)
119
- $curSoda.rep.ReportException(e, true, file)
120
+ $curSoda.rep.ReportException(e, file)
120
121
 
121
122
  data = nil
122
123
  ensure
data/lib/sodainfo.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  require 'Soda'
2
2
 
3
- SODA_GEM_VERSION = "1.3.7"
3
+ SODA_GEM_VERSION = "1.3.9"
4
4
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soda
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 9
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 3
9
- - 7
10
- version: 1.3.7
9
+ - 9
10
+ version: 1.3.9
11
11
  platform: ruby
12
12
  authors:
13
13
  - Trampus Richmond
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-13 00:00:00 Z
18
+ date: 2011-04-18 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: firewatir
@@ -33,20 +33,6 @@ dependencies:
33
33
  version: 1.8.0
34
34
  type: :runtime
35
35
  version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: libxml-ruby
38
- prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
48
- type: :runtime
49
- version_requirements: *id002
50
36
  description: This is a wrapper around the watir api for web testing.
51
37
  email: trichmond@sugarcrm.com
52
38
  executables: