OXIESEC PANEL
- Current Dir:
/
/
usr
/
lib
/
ruby
/
vendor_ruby
/
test
/
unit
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/10/2020 11:55:58 AM
rwxr-xr-x
📄
assertion-failed-error.rb
748 bytes
07/04/2017 08:50:15 PM
rw-r--r--
📄
assertions.rb
74 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
attribute-matcher.rb
431 bytes
07/04/2017 08:50:15 PM
rw-r--r--
📄
attribute.rb
6.85 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
auto-runner-loader.rb
379 bytes
07/04/2017 08:50:15 PM
rw-r--r--
📄
autorunner.rb
16.29 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
code-snippet-fetcher.rb
1.49 KB
07/04/2017 08:50:15 PM
rw-r--r--
📁
collector
-
02/10/2020 11:55:58 AM
rwxr-xr-x
📄
collector.rb
1.81 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
color-scheme.rb
7.12 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
color.rb
2.95 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
data.rb
8.34 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
diff.rb
25.42 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
error.rb
3.61 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
exception-handler.rb
2.7 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
failure.rb
5.09 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
fault-location-detector.rb
2.72 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
fixture.rb
9.03 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
notification.rb
3.34 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
omission.rb
4.5 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
pending.rb
3.61 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
priority.rb
4.39 KB
07/04/2017 08:50:15 PM
rw-r--r--
📁
runner
-
02/10/2020 11:55:58 AM
rwxr-xr-x
📄
test-suite-creator.rb
2.69 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
testcase.rb
23.96 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
testresult.rb
3.2 KB
07/04/2017 08:50:15 PM
rw-r--r--
📄
testsuite.rb
4.8 KB
07/04/2017 08:50:15 PM
rw-r--r--
📁
ui
-
02/10/2020 11:55:58 AM
rwxr-xr-x
📁
util
-
02/10/2020 11:55:58 AM
rwxr-xr-x
📄
version.rb
58 bytes
07/04/2017 08:50:15 PM
rw-r--r--
Editing: data.rb
Close
module Test module Unit module Data class << self def included(base) base.extend(ClassMethods) end end module ClassMethods # This method provides Data-Driven-Test functionality. # # Define test data in the test code. # # @overload data(label, data) # @param [String] label specify test case name. # @param data specify test data. # # @example data(label, data) # data("empty string", [true, ""]) # data("plain string", [false, "hello"]) # def test_empty?(data) # expected, target = data # assert_equal(expected, target.empty?) # end # # @overload data(data_set) # @param [Hash] data_set specify test data as a Hash that # key is test label and value is test data. # # @example data(data_set) # data("empty string" => [true, ""], # "plain string" => [false, "hello"]) # def test_empty?(data) # expected, target = data # assert_equal(expected, target.empty?) # end # # @overload data(&block) # @yieldreturn [Hash] return test data set as a Hash that # key is test label and value is test data. # # @example data(&block) # data do # data_set = {} # data_set["empty string"] = [true, ""] # data_set["plain string"] = [false, "hello"] # data_set # end # def test_empty?(data) # expected, target = data # assert_equal(expected, target.empty?) # end # def data(*arguments, &block) n_arguments = arguments.size case n_arguments when 0 raise ArgumentError, "no block is given" unless block_given? data_set = block when 1 data_set = arguments[0] when 2 data_set = {arguments[0] => arguments[1]} else message = "wrong number arguments(#{n_arguments} for 1..2)" raise ArgumentError, message end current_data = current_attribute(:data)[:value] || [] attribute(:data, current_data + [data_set]) end # This method provides Data-Driven-Test functionality. # # Load test data from the file. This is shorthand to load # test data from file. If you want to load complex file, you # can use {#data} with block. # # @param [String] file_name full path to test data file. # File format is automatically detected from filename extension. # @raise [ArgumentError] if +file_name+ is not supported file format. # @see Loader#load # # @example Load data from CSV file # load_data("/path/to/test-data.csv") # def test_empty?(data) # assert_equal(data["expected"], data["target"].empty?) # end # def load_data(file_name) loader = Loader.new(self) loader.load(file_name) end class Loader # @api private def initialize(test_case) @test_case = test_case end # Load data from file. # # @param [String] file_name full path to test data file. # File format is automatically detected from filename extension. # @raise [ArgumentError] if +file_name+ is not supported file format. # @see #load_csv # @see #load_tsv # @api private def load(file_name) case File.extname(file_name).downcase when ".csv" load_csv(file_name) when ".tsv" load_tsv(file_name) else raise ArgumentError, "unsupported file format: <#{file_name}>" end end # Load data from CSV file. # # There are 2 types of CSV file as following examples. # First, there is a header on first row and it's first column is "label". # Another, there is no header in the file. # # @example Load data from CSV file with header # # test-data.csv: # # label,expected,target # # empty string,true,"" # # plain string,false,hello # # # load_data("/path/to/test-data.csv") # def test_empty?(data) # assert_equal(data["expected"], data["target"].empty?) # end # # @example Load data from CSV file without header # # test-data-without-header.csv: # # empty string,true,"" # # plain string,false,hello # # # load_data("/path/to/test-data-without-header.csv") # def test_empty?(data) # expected, target = data # assert_equal(expected, target.empty?) # end # # @api private def load_csv(file_name) require 'csv' first_row = true header = nil CSV.foreach(file_name) do |row| if first_row first_row = false if row.first == "label" header = row[1..-1] next end end set_test_data(header, row) end end # Load data from TSV file. # # There are 2 types of TSV file as following examples. # First, there is a header on first row and it's first column is "label". # Another, there is no header in the file. # # @example Load data from TSV file with header # # test-data.tsv: # # label expected target # # empty string true "" # # plain string false hello # # # load_data("/path/to/test-data.tsv") # def test_empty?(data) # assert_equal(data["expected"], data["target"].empty?) # end # # @example Load data from TSV file without header # # test-data-without-header.tsv: # # empty string true "" # # plain string false hello # # # load_data("/path/to/test-data-without-header.tsv") # def test_empty?(data) # expected, target = data # assert_equal(expected, target.empty?) # end # # @api private def load_tsv(file_name) require "csv" if CSV.const_defined?(:VERSION) first_row = true header = nil CSV.foreach(file_name, :col_sep => "\t") do |row| if first_row first_row = false if row.first == "label" header = row[1..-1] next end end set_test_data(header, row) end else # for old CSV library first_row = true header = nil CSV.open(file_name, "r", "\t") do |row| if first_row first_row = false if row.first == "label" header = row[1..-1] next end end set_test_data(header, row) end end end private def normalize_value(value) return true if value == "true" return false if value == "false" begin Integer(value) rescue ArgumentError begin Float(value) rescue ArgumentError value end end end def set_test_data(header, row) label = row.shift if header data = {} header.each_with_index do |key, i| data[key] = normalize_value(row[i]) end else data = row.collect do |cell| normalize_value(cell) end end @test_case.data(label, data) end end end end end end