summaryrefslogtreecommitdiff
path: root/qa/qa/page/element.rb
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-12-22 13:01:12 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-12-22 13:01:12 +0100
commit856917520de2b1b254400b4501b4b98991280736 (patch)
tree991706d7ea813730026f74f469ed2be26eebad3e /qa/qa/page/element.rb
parent208411ee6242931670bdef5a8c92d34dee18498e (diff)
downloadgitlab-ce-856917520de2b1b254400b4501b4b98991280736.tar.gz
Add domain specific language to define QA page elements
Diffstat (limited to 'qa/qa/page/element.rb')
-rw-r--r--qa/qa/page/element.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/qa/qa/page/element.rb b/qa/qa/page/element.rb
index c634e834c96..e8e537070cb 100644
--- a/qa/qa/page/element.rb
+++ b/qa/qa/page/element.rb
@@ -1,6 +1,32 @@
module QA
module Page
class Element
+ attr_reader :name
+
+ def initialize(name, pattern)
+ @name = name
+ @pattern = pattern
+ end
+
+ def self.evaluate(&block)
+ Page::Element::DSL.new.tap do |evaluator|
+ evaluator.instance_exec(&block)
+
+ return evaluator.elements
+ end
+ end
+
+ class DSL
+ attr_reader :elements
+
+ def initialize
+ @elements = []
+ end
+
+ def element(name, pattern)
+ @elements.push(Page::Element.new(name, pattern))
+ end
+ end
end
end
end