fortitude 0.0.4-java
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.
- checksums.yaml +7 -0
- data/.gitignore +20 -0
- data/.rspec-local +4 -0
- data/.travis.yml +50 -0
- data/CHANGES.md +62 -0
- data/CONTRIBUTORS.md +6 -0
- data/Gemfile +5 -0
- data/LICENSE.txt +22 -0
- data/README-erector.md +246 -0
- data/README.md +15 -0
- data/Rakefile +67 -0
- data/ext/FortitudeJrubyNativeExtService.java +11 -0
- data/ext/com/fortituderuby/ext/fortitude/FortitudeNativeLibrary.java +223 -0
- data/ext/fortitude_native_ext/extconf.rb +4 -0
- data/ext/fortitude_native_ext/fortitude_native_ext.c +333 -0
- data/fortitude.gemspec +42 -0
- data/lib/fortitude.rb +7 -0
- data/lib/fortitude/doctypes.rb +48 -0
- data/lib/fortitude/doctypes/base.rb +42 -0
- data/lib/fortitude/doctypes/html4.rb +21 -0
- data/lib/fortitude/doctypes/html4_frameset.rb +20 -0
- data/lib/fortitude/doctypes/html4_strict.rb +18 -0
- data/lib/fortitude/doctypes/html4_tags_frameset.rb +53 -0
- data/lib/fortitude/doctypes/html4_tags_strict.rb +274 -0
- data/lib/fortitude/doctypes/html4_tags_transitional.rb +115 -0
- data/lib/fortitude/doctypes/html4_transitional.rb +19 -0
- data/lib/fortitude/doctypes/html5.rb +373 -0
- data/lib/fortitude/doctypes/unknown_doctype.rb +20 -0
- data/lib/fortitude/doctypes/xhtml10.rb +20 -0
- data/lib/fortitude/doctypes/xhtml10_frameset.rb +18 -0
- data/lib/fortitude/doctypes/xhtml10_strict.rb +18 -0
- data/lib/fortitude/doctypes/xhtml10_transitional.rb +18 -0
- data/lib/fortitude/doctypes/xhtml11.rb +30 -0
- data/lib/fortitude/errors.rb +153 -0
- data/lib/fortitude/extensions/fortitude_ruby_ext.rb +76 -0
- data/lib/fortitude/extensions/native_extensions.rb +33 -0
- data/lib/fortitude/method_templates/assign_locals_from_template.rb.smpl +22 -0
- data/lib/fortitude/method_templates/need_assignment_template.rb.smpl +16 -0
- data/lib/fortitude/method_templates/need_method_template.rb.smpl +4 -0
- data/lib/fortitude/method_templates/simple_template.rb +50 -0
- data/lib/fortitude/method_templates/tag_method_template.rb.smpl +68 -0
- data/lib/fortitude/method_templates/text_method_template.rb.smpl +17 -0
- data/lib/fortitude/rails.rb +26 -0
- data/lib/fortitude/rails/helpers.rb +153 -0
- data/lib/fortitude/rails/railtie.rb +256 -0
- data/lib/fortitude/rails/renderer.rb +43 -0
- data/lib/fortitude/rails/template_handler.rb +23 -0
- data/lib/fortitude/rails/widget_methods.rb +13 -0
- data/lib/fortitude/rails/yielded_object_outputter.rb +31 -0
- data/lib/fortitude/rendering_context.rb +205 -0
- data/lib/fortitude/support/assigns_proxy.rb +77 -0
- data/lib/fortitude/support/class_inheritable_attributes.rb +98 -0
- data/lib/fortitude/support/instance_variable_set.rb +76 -0
- data/lib/fortitude/support/staticized_method.rb +87 -0
- data/lib/fortitude/tags/partial_tag_placeholder.rb +19 -0
- data/lib/fortitude/tags/tag.rb +189 -0
- data/lib/fortitude/tags/tag_return_value.rb +13 -0
- data/lib/fortitude/tags/tag_store.rb +53 -0
- data/lib/fortitude/tags/tag_support.rb +51 -0
- data/lib/fortitude/tags/tags_module.rb +16 -0
- data/lib/fortitude/tilt.rb +17 -0
- data/lib/fortitude/tilt/fortitude_template.rb +169 -0
- data/lib/fortitude/version.rb +3 -0
- data/lib/fortitude/widget.rb +54 -0
- data/lib/fortitude/widget/around_content.rb +53 -0
- data/lib/fortitude/widget/capturing.rb +37 -0
- data/lib/fortitude/widget/content.rb +61 -0
- data/lib/fortitude/widget/doctypes.rb +53 -0
- data/lib/fortitude/widget/helpers.rb +62 -0
- data/lib/fortitude/widget/integration.rb +76 -0
- data/lib/fortitude/widget/localization.rb +63 -0
- data/lib/fortitude/widget/modules_and_subclasses.rb +58 -0
- data/lib/fortitude/widget/needs.rb +164 -0
- data/lib/fortitude/widget/non_rails_widget_methods.rb +13 -0
- data/lib/fortitude/widget/rendering.rb +98 -0
- data/lib/fortitude/widget/start_and_end_comments.rb +69 -0
- data/lib/fortitude/widget/staticization.rb +50 -0
- data/lib/fortitude/widget/tag_like_methods.rb +102 -0
- data/lib/fortitude/widget/tags.rb +55 -0
- data/lib/fortitude/widget/temporary_overrides.rb +28 -0
- data/lib/fortitude/widget/widget_class_inheritable_attributes.rb +35 -0
- data/lib/fortitude/widgets.rb +12 -0
- data/lib/fortitude/widgets/html4_frameset.rb +9 -0
- data/lib/fortitude/widgets/html4_strict.rb +9 -0
- data/lib/fortitude/widgets/html4_transitional.rb +9 -0
- data/lib/fortitude/widgets/html5.rb +9 -0
- data/lib/fortitude/widgets/xhtml10_frameset.rb +9 -0
- data/lib/fortitude/widgets/xhtml10_strict.rb +9 -0
- data/lib/fortitude/widgets/xhtml10_transitional.rb +9 -0
- data/lib/fortitude/widgets/xhtml11.rb +9 -0
- data/lib/fortitude_jruby_native_ext.jar +0 -0
- data/spec/helpers/global_helper.rb +8 -0
- data/spec/helpers/rails_helpers.rb +85 -0
- data/spec/helpers/rails_server.rb +386 -0
- data/spec/helpers/system_helpers.rb +117 -0
- data/spec/rails/basic_rails_system_spec.rb +7 -0
- data/spec/rails/capture_system_spec.rb +75 -0
- data/spec/rails/class_loading_system_spec.rb +63 -0
- data/spec/rails/complex_helpers_system_spec.rb +33 -0
- data/spec/rails/data_passing_system_spec.rb +96 -0
- data/spec/rails/default_layout_system_spec.rb +15 -0
- data/spec/rails/development_mode_system_spec.rb +67 -0
- data/spec/rails/erb_integration_system_spec.rb +23 -0
- data/spec/rails/helpers_include_all_off_system_spec.rb +7 -0
- data/spec/rails/helpers_system_spec.rb +79 -0
- data/spec/rails/helpers_unrefined_system_spec.rb +7 -0
- data/spec/rails/layouts_system_spec.rb +60 -0
- data/spec/rails/localization_system_spec.rb +38 -0
- data/spec/rails/production_mode_system_spec.rb +13 -0
- data/spec/rails/rendering_context_system_spec.rb +64 -0
- data/spec/rails/rendering_system_spec.rb +158 -0
- data/spec/rails/rules_system_spec.rb +23 -0
- data/spec/rails/static_method_system_spec.rb +12 -0
- data/spec/rails/templates/base/app/controllers/application_controller.rb +15 -0
- data/spec/rails/templates/base/app/controllers/working_controller.rb +5 -0
- data/spec/rails/templates/base/app/views/layouts/application.html.erb +11 -0
- data/spec/rails/templates/base/config/routes.rb +4 -0
- data/spec/rails/templates/base/config/secrets.yml +22 -0
- data/spec/rails/templates/basic_rails_system_spec/app/controllers/basic_rails_system_spec_controller.rb +8 -0
- data/spec/rails/templates/basic_rails_system_spec/app/views/basic_rails_system_spec/trivial_widget.rb +5 -0
- data/spec/rails/templates/capture_system_spec/app/controllers/capture_system_spec_controller.rb +37 -0
- data/spec/rails/templates/capture_system_spec/app/views/capture_system_spec/_some_erb_partial.html.erb +1 -0
- data/spec/rails/templates/capture_system_spec/app/views/capture_system_spec/another_widget.rb +7 -0
- data/spec/rails/templates/capture_system_spec/app/views/capture_system_spec/capture_erb_from_widget.rb +11 -0
- data/spec/rails/templates/capture_system_spec/app/views/capture_system_spec/capture_widget_from_erb.html.erb +9 -0
- data/spec/rails/templates/capture_system_spec/app/views/capture_system_spec/capture_widget_from_widget.rb +17 -0
- data/spec/rails/templates/capture_system_spec/app/views/capture_system_spec/some_widget.rb +5 -0
- data/spec/rails/templates/capture_system_spec/app/views/capture_system_spec/widget_content_for.rb +19 -0
- data/spec/rails/templates/capture_system_spec/app/views/capture_system_spec/widget_layout_needing_content_yield_with_erb.html.erb +13 -0
- data/spec/rails/templates/capture_system_spec/app/views/capture_system_spec/widget_provide.rb +13 -0
- data/spec/rails/templates/capture_system_spec/app/views/layouts/erb_layout_needing_content.html.erb +15 -0
- data/spec/rails/templates/capture_system_spec/app/views/layouts/widget_layout_needing_content_content_for.rb +23 -0
- data/spec/rails/templates/capture_system_spec/app/views/layouts/widget_layout_needing_content_yield.rb +23 -0
- data/spec/rails/templates/class_loading_system_spec/app/controllers/class_loading_system_spec_controller.rb +74 -0
- data/spec/rails/templates/class_loading_system_spec/app/models/views/app_models_helper.rb +5 -0
- data/spec/rails/templates/class_loading_system_spec/app/models/views/models_widget.rb +5 -0
- data/spec/rails/templates/class_loading_system_spec/app/views/autoload_namespace/autoload_widget.rb +11 -0
- data/spec/rails/templates/class_loading_system_spec/app/views/class_loading_system_spec/_loaded_underscore_widget.rb +11 -0
- data/spec/rails/templates/class_loading_system_spec/app/views/class_loading_system_spec/_underscore_view.rb +5 -0
- data/spec/rails/templates/class_loading_system_spec/app/views/class_loading_system_spec/_underscore_widget.rb +11 -0
- data/spec/rails/templates/class_loading_system_spec/app/views/class_loading_system_spec/app_models.rb +6 -0
- data/spec/rails/templates/class_loading_system_spec/app/views/class_loading_system_spec/autoload_one_widget_from_another.rb +7 -0
- data/spec/rails/templates/class_loading_system_spec/app/views/class_loading_system_spec/class_should_not_load.rb +9 -0
- data/spec/rails/templates/class_loading_system_spec/app/views/class_loading_system_spec/lib_views.rb +8 -0
- data/spec/rails/templates/class_loading_system_spec/app/views/class_loading_system_spec/use_lib_widget_from_view_widget.rb +9 -0
- data/spec/rails/templates/class_loading_system_spec/app/views/class_loading_system_spec/use_models_widget_from_view_widget.rb +7 -0
- data/spec/rails/templates/class_loading_system_spec/app/views/some_namespace/some_other_namespace/.git_keep +0 -0
- data/spec/rails/templates/class_loading_system_spec/app/views/sub_widget.rb +5 -0
- data/spec/rails/templates/class_loading_system_spec/lib/arbitrary_name/some_widget.rb +7 -0
- data/spec/rails/templates/class_loading_system_spec/lib/views/class_loading_system_spec/lib_views_helper.rb +5 -0
- data/spec/rails/templates/class_loading_system_spec/lib/views/class_loading_system_spec/widget_defined_outside_app_views.rb +5 -0
- data/spec/rails/templates/class_loading_system_spec/lib/views/lib_widget.rb +5 -0
- data/spec/rails/templates/complex_helpers_system_spec/app/controllers/complex_helpers_system_spec_controller.rb +14 -0
- data/spec/rails/templates/complex_helpers_system_spec/app/views/complex_helpers_system_spec/cache_test.rb +12 -0
- data/spec/rails/templates/complex_helpers_system_spec/app/views/complex_helpers_system_spec/fields_for_test.rb +14 -0
- data/spec/rails/templates/complex_helpers_system_spec/app/views/complex_helpers_system_spec/form_for_test.rb +14 -0
- data/spec/rails/templates/complex_helpers_system_spec/config/environments/development.rb +31 -0
- data/spec/rails/templates/data_passing_system_spec/app/controllers/data_passing_system_spec_controller.rb +101 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/_erb_to_parallel_widget_handoff_erb.html.erb +3 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/_implicit_erb_to_widget_handoff_erb.html.erb +3 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/_implicit_variable_write_erb.html.erb +1 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/_widget_to_parallel_erb_handoff_erb.html.erb +1 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/erb_copied_variables.html.erb +1 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/erb_to_parallel_widget_handoff.html.erb +2 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/erb_to_parallel_widget_handoff_widget.rb +5 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/explicit_controller_variable_read.rb +6 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/extra_variables.rb +23 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/extra_variables_requested.rb +24 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/implicit_erb_to_widget_handoff.html.erb +2 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/implicit_erb_to_widget_handoff_widget.rb +7 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/implicit_shared_variable_access.rb +5 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/implicit_shared_variable_access_inheritance.rb +6 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/implicit_shared_variable_access_inheritance_child_one.rb +7 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/implicit_shared_variable_access_inheritance_child_two.rb +5 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/implicit_shared_variable_access_inheritance_parent.rb +3 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/implicit_shared_variable_access_inner.rb +8 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/implicit_variable_read.rb +5 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/implicit_variable_read_inner.rb +7 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/implicit_variable_write.html.erb +2 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/implicit_variable_write_widget.rb +7 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/parent_to_child_passing.rb +7 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/parent_to_child_passing_child.rb +7 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/parent_to_child_passing_partial.rb +7 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/parent_to_child_passing_partial_child.rb +7 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/passing_data_widget.rb +8 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/passing_locals_and_controller_variables_widget.rb +9 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/passing_locals_widget.rb +8 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/variables_to_layout.rb +7 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/widget_copied_variables.rb +9 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/widget_to_parallel_erb_handoff.html.erb +2 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/data_passing_system_spec/widget_to_parallel_erb_handoff_widget.rb +5 -0
- data/spec/rails/templates/data_passing_system_spec/app/views/layouts/data_layout.rb +14 -0
- data/spec/rails/templates/default_layout_system_spec/app/controllers/default_layout_system_spec_controller.rb +9 -0
- data/spec/rails/templates/default_layout_system_spec/app/views/default_layout_system_spec/erb_with_widget_default_layout.html.erb +1 -0
- data/spec/rails/templates/default_layout_system_spec/app/views/default_layout_system_spec/widget_with_widget_default_layout.rb +5 -0
- data/spec/rails/templates/default_layout_system_spec/app/views/layouts/application.rb +12 -0
- data/spec/rails/templates/development_mode_system_spec/app/controllers/development_mode_system_spec_controller.rb +9 -0
- data/spec/rails/templates/development_mode_system_spec/app/views/development_mode_system_spec/reload_widget.rb +7 -0
- data/spec/rails/templates/development_mode_system_spec/app/views/development_mode_system_spec/sample_output.rb +9 -0
- data/spec/rails/templates/erb_integration_system_spec/app/controllers/erb_integration_system_spec_controller.rb +10 -0
- data/spec/rails/templates/erb_integration_system_spec/app/views/erb_integration_system_spec/_erb_partial_from_widget_partial.html.erb +1 -0
- data/spec/rails/templates/erb_integration_system_spec/app/views/erb_integration_system_spec/_fortitude_partial_with_underscore_partial.rb +5 -0
- data/spec/rails/templates/erb_integration_system_spec/app/views/erb_integration_system_spec/_prefers_erb_partial_partial.html.erb +1 -0
- data/spec/rails/templates/erb_integration_system_spec/app/views/erb_integration_system_spec/erb_partial_from_widget.rb +7 -0
- data/spec/rails/templates/erb_integration_system_spec/app/views/erb_integration_system_spec/erb_to_widget_with_render_partial.html.erb +3 -0
- data/spec/rails/templates/erb_integration_system_spec/app/views/erb_integration_system_spec/erb_to_widget_with_render_partial_widget.rb +5 -0
- data/spec/rails/templates/erb_integration_system_spec/app/views/erb_integration_system_spec/fortitude_partial_with_underscore.html.erb +3 -0
- data/spec/rails/templates/erb_integration_system_spec/app/views/erb_integration_system_spec/prefers_erb_partial.html.erb +3 -0
- data/spec/rails/templates/erb_integration_system_spec/app/views/erb_integration_system_spec/prefers_erb_partial_partial.rb +5 -0
- data/spec/rails/templates/helpers_include_all_off_system_spec/app/controllers/helpers_include_all_off_system_spec_controller.rb +13 -0
- data/spec/rails/templates/helpers_include_all_off_system_spec/app/helpers/application_helper.rb +5 -0
- data/spec/rails/templates/helpers_include_all_off_system_spec/app/helpers/some_helper.rb +5 -0
- data/spec/rails/templates/helpers_include_all_off_system_spec/app/views/helpers_include_all_off_system_spec/include_all_off.rb +23 -0
- data/spec/rails/templates/helpers_include_all_off_system_spec/config/application.rb +28 -0
- data/spec/rails/templates/helpers_system_spec/app/controllers/helpers_system_spec_controller.rb +86 -0
- data/spec/rails/templates/helpers_system_spec/app/helpers/some_helper.rb +21 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/automatic_helpers_disabled.rb +37 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/automatic_helpers_inheritance.rb +6 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/automatic_helpers_inheritance_child_one.rb +34 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/automatic_helpers_inheritance_child_two.rb +36 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/automatic_helpers_inheritance_parent.rb +4 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/basic_helpers.rb +13 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/block_helpers.rb +7 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/built_in_outputting_helpers.rb +13 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/built_in_outputting_to_returning.rb +8 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/built_in_returning_to_outputting.rb +10 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/controller_helper_method.rb +5 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/controller_helper_module.rb +5 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/custom_helper_outputs.rb +6 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/custom_helpers_basic.rb +5 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/custom_helpers_with_a_block.rb +6 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/custom_outputting_to_returning.rb +7 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/custom_returning_to_outputting.rb +10 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/helper_settings_inheritance.rb +10 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/helper_settings_inheritance_parent.rb +4 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/helpers_that_output_when_refined.rb +9 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/private_helper_erb.html.erb +1 -0
- data/spec/rails/templates/helpers_system_spec/app/views/helpers_system_spec/private_helper_fortitude.rb +5 -0
- data/spec/rails/templates/helpers_system_spec/lib/some_stuff.rb +5 -0
- data/spec/rails/templates/helpers_unrefined_system_spec/app/controllers/helpers_unrefined_system_spec_controller.rb +7 -0
- data/spec/rails/templates/helpers_unrefined_system_spec/app/views/helpers_unrefined_system_spec/helpers_that_output_when_refined.rb +9 -0
- data/spec/rails/templates/helpers_unrefined_system_spec/config/environments/production.rb +31 -0
- data/spec/rails/templates/layouts_system_spec/app/controllers/layouts_system_spec_controller.rb +31 -0
- data/spec/rails/templates/layouts_system_spec/app/views/layouts/alternate.html.erb +11 -0
- data/spec/rails/templates/layouts_system_spec/app/views/layouts/application.html.erb +26 -0
- data/spec/rails/templates/layouts_system_spec/app/views/layouts/explicit_yield.rb +12 -0
- data/spec/rails/templates/layouts_system_spec/app/views/layouts/widget_layout.rb +22 -0
- data/spec/rails/templates/layouts_system_spec/app/views/layouts_system_spec/erb_inside_widget_layout.html.erb +8 -0
- data/spec/rails/templates/layouts_system_spec/app/views/layouts_system_spec/the_render_widget.rb +5 -0
- data/spec/rails/templates/layouts_system_spec/app/views/layouts_system_spec/widget_inside_erb_layout.rb +8 -0
- data/spec/rails/templates/layouts_system_spec/app/views/layouts_system_spec/widget_inside_widget_layout.rb +8 -0
- data/spec/rails/templates/layouts_system_spec/app/views/layouts_system_spec/yield_from_widget_explicitly.rb +5 -0
- data/spec/rails/templates/localization_system_spec/app/controllers/localization_system_spec_controller.rb +31 -0
- data/spec/rails/templates/localization_system_spec/app/views/localization_system_spec/content_method.rb +13 -0
- data/spec/rails/templates/localization_system_spec/app/views/localization_system_spec/dot_notation.rb +5 -0
- data/spec/rails/templates/localization_system_spec/app/views/localization_system_spec/explicit_html.rb +13 -0
- data/spec/rails/templates/localization_system_spec/app/views/localization_system_spec/i18n_t.rb +5 -0
- data/spec/rails/templates/localization_system_spec/app/views/localization_system_spec/native_support.rb +7 -0
- data/spec/rails/templates/localization_system_spec/app/views/localization_system_spec/readjust_base.rb +7 -0
- data/spec/rails/templates/localization_system_spec/app/views/localization_system_spec/t.rb +5 -0
- data/spec/rails/templates/localization_system_spec/config/locales/en.yml +21 -0
- data/spec/rails/templates/localization_system_spec/config/locales/fr.yml +14 -0
- data/spec/rails/templates/localization_system_spec/config/locales/pt.yml +2 -0
- data/spec/rails/templates/production_mode_system_spec/app/controllers/production_mode_system_spec_controller.rb +5 -0
- data/spec/rails/templates/production_mode_system_spec/app/views/production_mode_system_spec/sample_output.rb +9 -0
- data/spec/rails/templates/rendering_context_system_spec/app/controllers/rendering_context_system_spec_controller.rb +72 -0
- data/spec/rails/templates/rendering_context_system_spec/app/views/rendering_context_system_spec/_start_end_widget_through_partials_partial.html.erb +1 -0
- data/spec/rails/templates/rendering_context_system_spec/app/views/rendering_context_system_spec/_uses_direct_context_for_all_widgets_partial.html.erb +1 -0
- data/spec/rails/templates/rendering_context_system_spec/app/views/rendering_context_system_spec/_uses_specified_context_through_nesting_partial.html.erb +2 -0
- data/spec/rails/templates/rendering_context_system_spec/app/views/rendering_context_system_spec/render_widget.rb +5 -0
- data/spec/rails/templates/rendering_context_system_spec/app/views/rendering_context_system_spec/start_end_widget_basic.rb +12 -0
- data/spec/rails/templates/rendering_context_system_spec/app/views/rendering_context_system_spec/start_end_widget_basic_inner.rb +7 -0
- data/spec/rails/templates/rendering_context_system_spec/app/views/rendering_context_system_spec/start_end_widget_through_partials.rb +16 -0
- data/spec/rails/templates/rendering_context_system_spec/app/views/rendering_context_system_spec/start_end_widget_through_partials_partial_widget.rb +7 -0
- data/spec/rails/templates/rendering_context_system_spec/app/views/rendering_context_system_spec/uses_direct_context_for_all_widgets.rb +7 -0
- data/spec/rails/templates/rendering_context_system_spec/app/views/rendering_context_system_spec/uses_direct_context_for_all_widgets_widget.rb +5 -0
- data/spec/rails/templates/rendering_context_system_spec/app/views/rendering_context_system_spec/uses_direct_context_in_view.rb +5 -0
- data/spec/rails/templates/rendering_context_system_spec/app/views/rendering_context_system_spec/uses_specified_context_in_partials.html.erb +3 -0
- data/spec/rails/templates/rendering_context_system_spec/app/views/rendering_context_system_spec/uses_specified_context_in_partials_partial.rb +5 -0
- data/spec/rails/templates/rendering_context_system_spec/app/views/rendering_context_system_spec/uses_specified_context_in_view.rb +5 -0
- data/spec/rails/templates/rendering_context_system_spec/app/views/rendering_context_system_spec/uses_specified_context_through_nesting.rb +6 -0
- data/spec/rails/templates/rendering_context_system_spec/app/views/rendering_context_system_spec/uses_specified_context_through_nesting_inner_partial.rb +5 -0
- data/spec/rails/templates/rendering_context_system_spec/lib/simple_rc.rb +17 -0
- data/spec/rails/templates/rendering_system_spec/app/controllers/rendering_system_spec_controller.rb +111 -0
- data/spec/rails/templates/rendering_system_spec/app/views/layouts/application.html.erb +19 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/_layout_for_partial.html.erb +3 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/_the_partial.html.erb +1 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/partial_with_layout.rb +5 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_collection.html.erb +3 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_collection_as.html.erb +3 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_file_from_widget.rb +7 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_html_safe_strings.rb +16 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_inline_from_widget.rb +11 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_object.html.erb +3 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_partial_from_widget.rb +7 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_partial_with_layout.html.erb +3 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_partial_with_widget_layout.html.erb +3 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_template_from_widget.rb +7 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/render_text_from_widget.rb +7 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/stream_widget.rb +13 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/trivial_widget.rb +5 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/widget_layout_for_partial.rb +7 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/widget_with_name.rb +7 -0
- data/spec/rails/templates/rendering_system_spec/app/views/rendering_system_spec/word.rb +7 -0
- data/spec/rails/templates/rendering_system_spec/app/views/widget_to_render.rb +7 -0
- data/spec/rails/templates/rules_system_spec/app/controllers/rules_system_spec_controller.rb +22 -0
- data/spec/rails/templates/rules_system_spec/app/views/layouts/fortitude_layout_with_p.rb +19 -0
- data/spec/rails/templates/rules_system_spec/app/views/rules_system_spec/_intervening_partial_erb_partial.html.erb +1 -0
- data/spec/rails/templates/rules_system_spec/app/views/rules_system_spec/intervening_partial.rb +9 -0
- data/spec/rails/templates/rules_system_spec/app/views/rules_system_spec/intervening_partial_fortitude_partial.rb +9 -0
- data/spec/rails/templates/rules_system_spec/app/views/rules_system_spec/invalid_start_tag_in_partial.html.erb +3 -0
- data/spec/rails/templates/rules_system_spec/app/views/rules_system_spec/invalid_start_tag_in_partial_partial.rb +9 -0
- data/spec/rails/templates/rules_system_spec/app/views/rules_system_spec/invalid_start_tag_in_view.rb +9 -0
- data/spec/rails/templates/rules_system_spec/app/views/rules_system_spec/invalidly_nested_tag.rb +11 -0
- data/spec/rails/templates/rules_system_spec/app/views/rules_system_spec/invalidly_nested_tag_in_partial.html.erb +3 -0
- data/spec/rails/templates/rules_system_spec/app/views/rules_system_spec/invalidly_nested_tag_in_partial_partial.rb +11 -0
- data/spec/rails/templates/static_method_system_spec/app/controllers/static_method_system_spec_controller.rb +15 -0
- data/spec/rails/templates/static_method_system_spec/app/helpers/some_helper.rb +10 -0
- data/spec/rails/templates/static_method_system_spec/app/views/static_method_system_spec/allows_helper_access.rb +8 -0
- data/spec/rails/templates/static_method_system_spec/app/views/static_method_system_spec/localization.rb +7 -0
- data/spec/rails/templates/static_method_system_spec/config/locales/en.yml +4 -0
- data/spec/rails/templates/static_method_system_spec/config/locales/fr.yml +4 -0
- data/spec/system/around_content_system_spec.rb +399 -0
- data/spec/system/assigns_system_spec.rb +316 -0
- data/spec/system/attribute_rules_system_spec.rb +227 -0
- data/spec/system/basic_system_spec.rb +9 -0
- data/spec/system/content_inheritance_system_spec.rb +13 -0
- data/spec/system/convenience_methods_system_spec.rb +30 -0
- data/spec/system/doctypes_system_spec.rb +228 -0
- data/spec/system/erector_compatibility_system_spec.rb +84 -0
- data/spec/system/escaping_system_spec.rb +43 -0
- data/spec/system/formatting_system_spec.rb +63 -0
- data/spec/system/helpers_system_spec.rb +235 -0
- data/spec/system/id_uniqueness_system_spec.rb +205 -0
- data/spec/system/inline_system_spec.rb +58 -0
- data/spec/system/localization_system_spec.rb +94 -0
- data/spec/system/method_precedence_system_spec.rb +48 -0
- data/spec/system/needs_system_spec.rb +381 -0
- data/spec/system/other_outputters_system_spec.rb +117 -0
- data/spec/system/rails_not_available_spec.rb +11 -0
- data/spec/system/rebuild_notifications_system_spec.rb +208 -0
- data/spec/system/rendering_context_system_spec.rb +83 -0
- data/spec/system/setting_inheritance_system_spec.rb +585 -0
- data/spec/system/shared_variable_system_spec.rb +120 -0
- data/spec/system/start_end_comments_system_spec.rb +363 -0
- data/spec/system/static_method_system_spec.rb +348 -0
- data/spec/system/tag_rendering_system_spec.rb +260 -0
- data/spec/system/tag_return_value_system_spec.rb +41 -0
- data/spec/system/tag_rules_system_spec.rb +196 -0
- data/spec/system/tag_updating_system_spec.rb +171 -0
- data/spec/system/tilt_system_spec.rb +382 -0
- data/spec/system/unparsed_data_system_spec.rb +16 -0
- data/spec/system/void_tags_system_spec.rb +90 -0
- data/spec/system/widget_return_values_system_spec.rb +107 -0
- metadata +759 -0
@@ -0,0 +1,23 @@
|
|
1
|
+
describe "Rails ERb integration support", :type => :rails do
|
2
|
+
uses_rails_with_template :erb_integration_system_spec
|
3
|
+
|
4
|
+
it "should let you call a widget from an ERb file with render :partial" do
|
5
|
+
expect_match("erb_to_widget_with_render_partial", /erb to widget with render partial widget/,
|
6
|
+
/erb_start/, /erb_end/, /erb_start.*erb to widget with render partial widget.*erb_end/m)
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should prefer ERb partials to Fortitude partials" do
|
10
|
+
expect_match("prefers_erb_partial", /erb partial/,
|
11
|
+
/erb_start.*erb partial.*erb_end/m)
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should allow you to define a Fortitude partial in a file with an underscore" do
|
15
|
+
expect_match('fortitude_partial_with_underscore', /fortitude partial with underscore partial/,
|
16
|
+
/erb_start.*fortitude partial with underscore partial.*erb_end/m)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should let you call an ERb partial from a widget with render :partial" do
|
20
|
+
expect_match('erb_partial_from_widget',
|
21
|
+
/this is the widget.*this is the partial.*this is the widget again/mi)
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
describe "Fortitude helpers with config.action_controller.include_all_helpers = false", :type => :rails do
|
2
|
+
uses_rails_with_template :helpers_include_all_off_system_spec
|
3
|
+
|
4
|
+
it "should not include all helpers" do
|
5
|
+
expect_match("include_all_off", /excitedly: awesome!!!; uncertainly: NoMethodError/mi)
|
6
|
+
end
|
7
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
describe "Rails helper support", :type => :rails do
|
2
|
+
uses_rails_with_template :helpers_system_spec
|
3
|
+
|
4
|
+
it "should support the built-in Rails helpers by default" do
|
5
|
+
expect_match("basic_helpers",
|
6
|
+
/Three months ago: 3 months/mi,
|
7
|
+
/A million dollars: \$1,000,000\.00/mi,
|
8
|
+
%r{Select datetime:\s*<select.*name="date.*>.*<option.*value="2014".*</option>}mi)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should refine the built-in Rails helpers by default" do
|
12
|
+
expect_match("helpers_that_output_when_refined",
|
13
|
+
%r{START.*<img.*src="http://example.com/foo".*/><a href="mailto:test@example.com">test@example.com</a><link.*href="http://example.com/bar".*/>END}mi)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should support helpers that use blocks" do
|
17
|
+
expect_match("block_helpers",
|
18
|
+
%r{<body>\s*<form.*action="/form_dest".*>.*<input.*authenticity_token.*/>.*<p>inside the form</p>.*</form>}mi,
|
19
|
+
%r{})
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should support built-in Rails helpers that output, rather than return, properly" do
|
23
|
+
expect_match("built_in_outputting_helpers",
|
24
|
+
%r{<div class=.concat_container.>.*this is concatted.*</div>.*<div class=.safe_concat_container.>.*this is safe_concatted.*</div>}mi)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should support custom-defined helpers" do
|
28
|
+
expect_match("custom_helpers_basic", %r{excited: awesome!!!})
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should support custom-defined helpers that output, rather than return, properly" do
|
32
|
+
expect_match("custom_helper_outputs", %r{how awesome: super awesome!})
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should support custom-defined helpers that take a block" do
|
36
|
+
expect_match("custom_helpers_with_a_block", %r{fedxxcbayyabcxxdef})
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should allow changing a built-in Rails helper from outputting to returning" do
|
40
|
+
expect_match("built_in_outputting_to_returning", %r{<body>\s*<p>\s*text is: this is the_text\s*</p>\s*</body>}mi)
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should allow changing a built-in Rails helper from returning to outputting" do
|
44
|
+
expect_match("built_in_returning_to_outputting", %r{<body>\s*it was 3 months, yo\s*</body>}mi)
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should allow changing a custom-defined helper from outputting to returning" do
|
48
|
+
expect_match("custom_outputting_to_returning", %r{and super awesome!, yo}mi)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should allow changing a custom-defined helper from returning to outputting" do
|
52
|
+
expect_match("custom_returning_to_outputting", %r{and awesome!!!, yo}mi)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should inherit helper settings, but also let them be overridden" do
|
56
|
+
expect_match("helper_settings_inheritance", %r{it is really awesome!!!, yo\s*and super awesome!, too}mi)
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should allow access to controller methods declared as helpers" do
|
60
|
+
expect_match("controller_helper_method", %r{it is \*\~\* Fred \*\~\*\!}mi)
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should allow access to methods explicitly imported as helpers" do
|
64
|
+
expect_match("controller_helper_module", %r{and >=== June ===>}mi)
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should allow turning off automatic helper access" do
|
68
|
+
expect_match("automatic_helpers_disabled", %r{excitedly: NoMethodError; time_ago_in_words: NoMethodError; number_to_currency: \$1,000,000.00})
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should inherit automatic helper access properly" do
|
72
|
+
expect_match("automatic_helpers_inheritance", %r{C1: excitedly: NoMethodError; time_ago_in_words: NoMethodError; number_to_currency: \$1,000,000.00.*C2: excitedly: awesome!!!; time_ago_in_words: 3 months; number_to_currency: \$1,000,000.00})
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should allow access to private helpers in exactly the same way as ERb" do
|
76
|
+
expect_match("private_helper_erb", %r{a private helper: private!})
|
77
|
+
expect_match("private_helper_fortitude", %r{a private helper: private!})
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
describe "Fortitude unrefined Rails helper support", :type => :rails do
|
2
|
+
uses_rails_with_template :helpers_unrefined_system_spec
|
3
|
+
|
4
|
+
it "should not output when refined-outputting helpers are called" do
|
5
|
+
expect_match("helpers_that_output_when_refined", /STARTEND/)
|
6
|
+
end
|
7
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
describe "Rails layout support", :type => :rails do
|
2
|
+
uses_rails_with_template :layouts_system_spec
|
3
|
+
|
4
|
+
it "should let you use a widget in an ERb layout, and render in the right order" do
|
5
|
+
data = get("widget_inside_erb_layout")
|
6
|
+
data.should match(/default_layout_erb/i)
|
7
|
+
data.should match(/this is widget_inside_erb_layout/i)
|
8
|
+
data.should match(/pre_layout order: \[:widget_inside_erb_layout, :layout_pre\]/i)
|
9
|
+
data.should match(/post_layout order: \[:widget_inside_erb_layout, :layout_pre, :layout_post\]/i)
|
10
|
+
data.should match(/order inside widget: \[:widget_inside_erb_layout\]/i)
|
11
|
+
data.should match(/pre_layout foo: foo_from_widget_inside_erb_layout/i)
|
12
|
+
data.should match(/post_layout foo: foo_from_widget_inside_erb_layout/i)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should let you use a widget as a layout with an ERb view, and render in the right order" do
|
16
|
+
data = get("erb_inside_widget_layout")
|
17
|
+
data.should match(/widget_layout/i)
|
18
|
+
data.should match(/this is erb_inside_widget_layout/i)
|
19
|
+
data.should match(/pre_layout order: \[:erb_inside_widget_layout, :widget_layout_pre\]/i)
|
20
|
+
data.should match(/post_layout order: \[:erb_inside_widget_layout, :widget_layout_pre, :widget_layout_post\]/i)
|
21
|
+
data.should match(/order inside erb: \[:erb_inside_widget_layout\]/i)
|
22
|
+
data.should match(/pre_layout foo: foo_from_erb_inside_widget_layout/i)
|
23
|
+
data.should match(/post_layout foo: foo_from_erb_inside_widget_layout/i)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should let you use a widget as a layout with a widget view, and render in the right order" do
|
27
|
+
data = get("widget_inside_widget_layout")
|
28
|
+
data.should match(/widget_layout/i)
|
29
|
+
data.should match(/this is widget_inside_widget_layout/i)
|
30
|
+
data.should match(/pre_layout order: \[:widget_inside_widget_layout, :widget_layout_pre\]/i)
|
31
|
+
data.should match(/post_layout order: \[:widget_inside_widget_layout, :widget_layout_pre, :widget_layout_post\]/i)
|
32
|
+
data.should match(/order inside widget: \[:widget_inside_widget_layout\]/i)
|
33
|
+
data.should match(/pre_layout foo: foo_from_widget_inside_widget_layout/i)
|
34
|
+
data.should match(/post_layout foo: foo_from_widget_inside_widget_layout/i)
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should use a layout with render :widget by default" do
|
38
|
+
data = get("render_widget")
|
39
|
+
data.should match(/default_layout_erb/i)
|
40
|
+
data.should match(/this is the_render_widget/i)
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should let you turn off the layout with render :widget" do
|
44
|
+
data = get("render_widget_without_layout")
|
45
|
+
data.should_not match(/default_layout_erb/i)
|
46
|
+
data.should match(/this is the_render_widget/i)
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should let you pick an alternate layout for render :widget" do
|
50
|
+
data = get("render_widget_with_alt_layout")
|
51
|
+
data.should match(/alternate_layout_erb/i)
|
52
|
+
data.should match(/this is the_render_widget/i)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should let you explicitly yield to the view" do
|
56
|
+
data = get("yield_from_widget_explicitly")
|
57
|
+
data.should match(/explicit_yield_layout/i)
|
58
|
+
data.should match(/this is yield_from_widget_explicitly/i)
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
describe "basic Rails support", :type => :rails do
|
2
|
+
uses_rails_with_template :localization_system_spec
|
3
|
+
|
4
|
+
it "should allow you to provide localized content methods" do
|
5
|
+
expect_match("content_method?locale=en", /wassup\? this is english/mi)
|
6
|
+
expect_match("content_method?locale=fr", /bienvenue, les mecs/mi)
|
7
|
+
expect_match("content_method?locale=pt", /i don&#(39|x27);t know that language/mi)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should let you translate strings with I18n.t" do
|
11
|
+
expect_match("i18n_t?locale=en", /a house is: house/)
|
12
|
+
expect_match("i18n_t?locale=fr", /a house is: maison/)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should let you translate strings with just t" do
|
16
|
+
expect_match("t?locale=en", /a house is: house/)
|
17
|
+
expect_match("t?locale=fr", /a house is: maison/)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should support dot-notation for I18n translation naming" do
|
21
|
+
expect_match("dot_notation?locale=en", /awesome is: awesome!/)
|
22
|
+
expect_match("dot_notation?locale=fr", /awesome is: formidable!/)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should let you translate strings with Fortitude translation support" do
|
26
|
+
expect_match("native_support?locale=en", /not translated; also awesome 127!; also not translated/i)
|
27
|
+
expect_match("native_support?locale=fr", /not translated; encore formidable 127!; also not translated/i)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should let you readjust the translation base" do
|
31
|
+
expect_match("readjust_base?locale=en", /SUPA-awesome 127!/)
|
32
|
+
expect_match("readjust_base?locale=fr", /TOUS formidable, 127!/)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should not escape explicitly-HTML translations" do
|
36
|
+
expect_match("explicit_html", /one: foo<bar>, two: bar<baz>, one again: foo<bar>, two again: bar<baz>/i)
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
describe "Rails production-mode support", :type => :rails do
|
2
|
+
uses_rails_with_template :production_mode_system_spec
|
3
|
+
|
4
|
+
it "should not, by default, format output" do
|
5
|
+
expect_match("sample_output", %r{<section class="one"><p>hello, Jessica</p></section>}i)
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should not, by default, output BEGIN/END debugging tags" do
|
9
|
+
data = get_success("sample_output")
|
10
|
+
expect(data).not_to match(%r{<!--\s*BEGIN}mi)
|
11
|
+
expect(data).not_to match(%r{<!--\s*END}mi)
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
describe "Rails RenderingContext support", :type => :rails do
|
2
|
+
uses_rails_with_template :rendering_context_system_spec
|
3
|
+
|
4
|
+
it "should use the context returned by create_fortitude_rendering_context in the view" do
|
5
|
+
expect_match("uses_specified_context_in_view", /context is: SimpleRc, value 12345/)
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should still use that context even for partials invoked by ERb" do
|
9
|
+
expect_match("uses_specified_context_in_partials", /before partial.*context is: SimpleRc, value 23456.*after partial/mi)
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should use that context for partials through multiple layers of nesting" do
|
13
|
+
text = get_success("uses_specified_context_through_nesting")
|
14
|
+
if text =~ /view rc: SimpleRc, 34567, (\d+).*partial.*inner partial rc: SimpleRc, 34567, (\d+)/mi
|
15
|
+
first_value, second_value = Integer($1), Integer($2)
|
16
|
+
expect(first_value).to eq(second_value)
|
17
|
+
else
|
18
|
+
raise "Text did not match: #{text.inspect}"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should use that context for widgets rendered with render :widget" do
|
23
|
+
expect_match("uses_specified_context_in_render_widget", /context is: SimpleRc, value 45678/)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should use that context for widgets rendered with render :inline" do
|
27
|
+
expect_match("uses_specified_context_in_render_inline", /context is: SimpleRc, value 56789/)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should use the context returned by just plain fortitude_rendering_context in the view" do
|
31
|
+
expect_match("uses_direct_context_in_view", /context is: SimpleRc, value 67890/)
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should still call that method for all widgets" do
|
35
|
+
expect_match("uses_direct_context_for_all_widgets", /context is: SimpleRc, value 67890.*context is: SimpleRc, value 67891.*context is: SimpleRc, value 67890/mi)
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should call start_widget! and end_widget! properly on widgets in Rails" do
|
39
|
+
text = get_success("start_end_widget_basic")
|
40
|
+
lines = text.split(/[\r\n]+/)
|
41
|
+
lines = lines.select { |l| l =~ /^\d:/ }.map { |l| l.strip }
|
42
|
+
expect(lines[0]).to eq("0: start Views::RenderingContextSystemSpec::StartEndWidgetBasic")
|
43
|
+
expect(lines[1]).to eq("1: start Views::RenderingContextSystemSpec::StartEndWidgetBasicInner 1")
|
44
|
+
expect(lines[2]).to eq("2: end Views::RenderingContextSystemSpec::StartEndWidgetBasicInner 1")
|
45
|
+
expect(lines[3]).to eq("3: start Views::RenderingContextSystemSpec::StartEndWidgetBasicInner 2")
|
46
|
+
expect(lines[4]).to eq("4: start Views::RenderingContextSystemSpec::StartEndWidgetBasicInner")
|
47
|
+
expect(lines[5]).to eq("5: end Views::RenderingContextSystemSpec::StartEndWidgetBasicInner")
|
48
|
+
expect(lines[6]).to eq("6: end Views::RenderingContextSystemSpec::StartEndWidgetBasicInner 2")
|
49
|
+
expect(lines.length).to eq(7)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should call start_widget! and end_widget! through ERb partials, passing them as hashes" do
|
53
|
+
text = get_success("start_end_widget_through_partials")
|
54
|
+
lines = text.split(/[\r\n]+/)
|
55
|
+
lines = lines.select { |l| l =~ /^\d:/ }.map { |l| l.strip }
|
56
|
+
|
57
|
+
expect(lines[0]).to eq("0: start Views::RenderingContextSystemSpec::StartEndWidgetThroughPartials")
|
58
|
+
expect(lines[1]).to eq("1: start [{:partial=>\"start_end_widget_through_partials_partial\"}]")
|
59
|
+
expect(lines[2]).to eq("2: start Views::RenderingContextSystemSpec::StartEndWidgetThroughPartialsPartialWidget 12345")
|
60
|
+
expect(lines[3]).to eq("3: end Views::RenderingContextSystemSpec::StartEndWidgetThroughPartialsPartialWidget 12345")
|
61
|
+
expect(lines[4]).to eq("4: end [{:partial=>\"start_end_widget_through_partials_partial\"}]")
|
62
|
+
expect(lines.length).to eq(5)
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,158 @@
|
|
1
|
+
describe "Rails rendering support", :type => :rails do
|
2
|
+
uses_rails_with_template :rendering_system_spec
|
3
|
+
|
4
|
+
describe "rendering from a controller" do
|
5
|
+
it "should let you specify a widget with 'render :action =>'" do
|
6
|
+
expect_match("render_with_colon_action", /hello, world/)
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should let you specify a widget with 'render :template =>'" do
|
10
|
+
expect_match("render_with_colon_template", /hello, world/)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should let you specify a widget with 'render :widget =>', which should use a layout by default" do
|
14
|
+
data = expect_match("render_widget", /hello from a widget named Fred/)
|
15
|
+
expect(data).to match(/rails_spec_application/)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should let you omit the layout with 'render :widget =>', if you ask for it" do
|
19
|
+
data = expect_match("render_widget_without_layout", /hello from a widget named Fred/, :no_layout => true)
|
20
|
+
expect(data).not_to match(/rails_spec_application/)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should let you render a widget with 'render \"foo\"'" do
|
24
|
+
expect_match("render_widget_via_file_path", /hello from a widget named Fred/)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should let you render a widget with 'render :file =>'" do
|
28
|
+
expect_match("render_widget_via_colon_file", /hello from a widget named Fred/)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should let you render a widget inline with 'render :inline =>'" do
|
32
|
+
expect_match("render_widget_via_inline", /this is an inline widget named Fred/)
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should let you render a widget inline, and use all instance and local variables, with locals overriding instance variables" do
|
36
|
+
expect_match("render_widget_via_inline_with_var_access", /this is an inline widget named Fred, and it is 27 years old, and friends with Mary/)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "rendering in a widget" do
|
41
|
+
it "should let you render a partial in a widget" do
|
42
|
+
expect_match("render_partial_from_widget", /this is the widget.*this is the_partial.*this is the widget again/mi)
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should let you render :text in a widget" do
|
46
|
+
expect_match("render_text_from_widget", /this is the widget.*this is render_text.*this is the widget again/mi)
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should let you render :template in a widget" do
|
50
|
+
expect_match("render_template_from_widget", /this is the widget.*widget_with_name: Fred.*this is the widget again/mi)
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should let you render :inline in a widget" do
|
54
|
+
expect_match("render_inline_from_widget", /this is the widget.*widget_with_name: Fred.*this is the widget again/mi)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should let you render :file in a widget" do
|
58
|
+
expect_match("render_file_from_widget", /this is the widget.*widget_with_name: Fred.*this is the widget again/mi)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
describe "render options" do
|
63
|
+
it "should let you set the content-type" do
|
64
|
+
data = get_response("render_with_content_type")
|
65
|
+
expect(data.body.strip).to match(/hello, world/)
|
66
|
+
content_type = data.header['content-type']
|
67
|
+
expect(content_type).to match(%r{^boo/yeah(;.*)?$})
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should let you set the location" do
|
71
|
+
data = get_response("render_with_location")
|
72
|
+
expect(data.body.strip).to match(/hello, world/)
|
73
|
+
location = data.header['location']
|
74
|
+
expect(location).to eq("http://somewhere/over/the/rainbow")
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should let you set the status" do
|
78
|
+
data = get_response("render_with_status", :ignore_status_code => true)
|
79
|
+
expect(data.code.to_s).to eq("768")
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
describe "rendering partial invocation" do
|
84
|
+
it "should render a collection correctly if so invoked" do
|
85
|
+
expect_match("render_collection", /collection is:.*word: apple.*word: pie.*word: is.*word: nice.*and that's all!/mi)
|
86
|
+
end
|
87
|
+
|
88
|
+
it "should support :as for rendering" do
|
89
|
+
expect_match("render_collection_as", /collection is:.*widget_with_name: bonita.*widget_with_name: applebaum.*widget_with_name: the.*widget_with_name: dude.*and that's all!/mi)
|
90
|
+
end
|
91
|
+
|
92
|
+
it "should support :object for rendering" do
|
93
|
+
expect_match("render_object", /partial is:.*word: donkey.*and that's all!/mi)
|
94
|
+
end
|
95
|
+
|
96
|
+
it "should support ERb partial layouts" do
|
97
|
+
expect_match("render_partial_with_layout", /this is the partial:.*partial_layout before.*partial_with_layout.*partial_layout after.*done!/mi)
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should support using a widget as an ERb partial layout" do
|
101
|
+
expect_match("render_partial_with_widget_layout", /this is the partial:.*widget_partial_layout before.*partial_with_layout.*widget_partial_layout after.*done!/mi)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
describe "HTML escaping" do
|
106
|
+
it "should only escape strings that aren't raw() or html_safe(), and do the right thing with h()" do
|
107
|
+
expect_match("render_html_safe_strings", /a: foo<bar, b: bar<baz, c: baz<quux, d: quux<marph, e: marph>foo/)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
describe "streaming support" do
|
112
|
+
# Actually trying to get streaming working completely is a VERY finicky business, and we don't want to fail
|
113
|
+
# our tests just because (e.g.) we can't get buffering 100% disabled on this platform. So, we:
|
114
|
+
#
|
115
|
+
# * Use Net::HTTP to collect the HTTP/1.1 transfer chunks of the response; there should be more than one if
|
116
|
+
# we're actually streaming (and there ends up being just 1 if you don't tell it to stream, or if Rails
|
117
|
+
# detects that your template engine doesn't support streaming);
|
118
|
+
# * Collect the rendering order server-side and output it; if streaming, we'll render the top of the layout,
|
119
|
+
# then the widget, then the bottom of the layout, completely differently from Rails' default mechanism of
|
120
|
+
# rendering the view first, then the layout.
|
121
|
+
def collect_chunks(path)
|
122
|
+
chunks = [ ]
|
123
|
+
|
124
|
+
uri = rails_server.uri_for(full_path(path))
|
125
|
+
Net::HTTP.start(uri.host, uri.port) do |http|
|
126
|
+
request = Net::HTTP::Get.new uri.request_uri
|
127
|
+
|
128
|
+
http.request(request) do |response|
|
129
|
+
response.read_body do |chunk|
|
130
|
+
chunks << chunk
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
chunks
|
136
|
+
end
|
137
|
+
|
138
|
+
it "should let you stream a pure widget" do
|
139
|
+
skip "currently, we can't figure out a way to test this for certain -- we get just one chunk no matter what we do"
|
140
|
+
|
141
|
+
chunks = collect_chunks("stream_widget")
|
142
|
+
expect(chunks.length).to be > 1
|
143
|
+
end
|
144
|
+
|
145
|
+
it "should let you stream from a widget that's in an ERb layout" do
|
146
|
+
skip("Fortitude streaming test is not supported under Rails 3.0.x") if @rails_server.rails_version =~ /^3\.0\./
|
147
|
+
skip("Fortitude streaming test is not supported under Ruby 1.8") if RUBY_VERSION =~ /^1\.8\./
|
148
|
+
|
149
|
+
chunks = collect_chunks("stream_widget_with_layout")
|
150
|
+
expect(chunks.length).to be > 1
|
151
|
+
|
152
|
+
full_text = chunks.join("")
|
153
|
+
expect(full_text).to match(/start_of_layout order:\s+\[:layout_start\]/mi)
|
154
|
+
expect(full_text).to match(/end_of_widget order:\s+\[:layout_start, :widget\]/mi)
|
155
|
+
expect(full_text).to match(/end_of_layout order:\s+\[:layout_start, :widget, :layout_end\]/mi)
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|