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