lib/calabash.rb in calabash-2.0.0.pre4 vs lib/calabash.rb in calabash-2.0.0.pre5
- old
+ new
@@ -110,17 +110,27 @@
unless page_class.is_a?(Class)
raise ArgumentError, "Expected a 'Class', got '#{page_class.class}'"
end
-
page_name = page_class.name
full_page_name = "#{platform_module}::#{page_name}"
if Calabash.is_defined?(full_page_name)
page_class = platform_module.const_get(page_name, false)
if page_class.is_a?(Class)
+ modules = page_class.included_modules.map(&:to_s)
+
+ unless modules.include?("Calabash::#{platform_module}")
+ raise "Page '#{page_class}' does not include Calabash::#{platform_module}"
+ end
+
+ if modules.include?('Calabash::Android') &&
+ modules.include?('Calabash::IOS')
+ raise "Page '#{page_class}' includes both Calabash::Android and Calabash::IOS"
+ end
+
page = page_class.send(:new, self)
if page.is_a?(Calabash::Page)
page
else