metasploit-model 0.24.1-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/.coveralls.yml +1 -0
- data/.gitignore +27 -0
- data/.rspec +4 -0
- data/.simplecov +38 -0
- data/.travis.yml +6 -0
- data/.yardopts +5 -0
- data/Gemfile +43 -0
- data/LICENSE +27 -0
- data/README.md +33 -0
- data/Rakefile +52 -0
- data/app/models/metasploit/model/association/reflection.rb +46 -0
- data/app/models/metasploit/model/module/ancestor/spec/template.rb +125 -0
- data/app/models/metasploit/model/module/class/spec/template.rb +92 -0
- data/app/models/metasploit/model/module/instance/spec/template.rb +97 -0
- data/app/models/metasploit/model/search/group/base.rb +21 -0
- data/app/models/metasploit/model/search/group/intersection.rb +4 -0
- data/app/models/metasploit/model/search/group/union.rb +4 -0
- data/app/models/metasploit/model/search/operation/base.rb +39 -0
- data/app/models/metasploit/model/search/operation/boolean.rb +36 -0
- data/app/models/metasploit/model/search/operation/date.rb +37 -0
- data/app/models/metasploit/model/search/operation/integer.rb +14 -0
- data/app/models/metasploit/model/search/operation/null.rb +26 -0
- data/app/models/metasploit/model/search/operation/set.rb +34 -0
- data/app/models/metasploit/model/search/operation/set/integer.rb +5 -0
- data/app/models/metasploit/model/search/operation/set/string.rb +5 -0
- data/app/models/metasploit/model/search/operation/string.rb +11 -0
- data/app/models/metasploit/model/search/operation/union.rb +59 -0
- data/app/models/metasploit/model/search/operator/association.rb +43 -0
- data/app/models/metasploit/model/search/operator/attribute.rb +60 -0
- data/app/models/metasploit/model/search/operator/base.rb +34 -0
- data/app/models/metasploit/model/search/operator/delegation.rb +40 -0
- data/app/models/metasploit/model/search/operator/deprecated/app.rb +27 -0
- data/app/models/metasploit/model/search/operator/deprecated/author.rb +33 -0
- data/app/models/metasploit/model/search/operator/deprecated/authority.rb +43 -0
- data/app/models/metasploit/model/search/operator/deprecated/platform.rb +45 -0
- data/app/models/metasploit/model/search/operator/deprecated/ref.rb +50 -0
- data/app/models/metasploit/model/search/operator/deprecated/text.rb +32 -0
- data/app/models/metasploit/model/search/operator/null.rb +44 -0
- data/app/models/metasploit/model/search/operator/single.rb +98 -0
- data/app/models/metasploit/model/search/operator/union.rb +33 -0
- data/app/models/metasploit/model/search/query.rb +171 -0
- data/app/models/metasploit/model/spec/template.rb +273 -0
- data/app/models/metasploit/model/visitation/visitor.rb +69 -0
- data/app/validators/derivation_validator.rb +17 -0
- data/app/validators/dynamic_length_validator.rb +45 -0
- data/app/validators/ip_format_validator.rb +31 -0
- data/app/validators/nil_validator.rb +16 -0
- data/app/validators/parameters_validator.rb +147 -0
- data/app/validators/password_is_strong_validator.rb +115 -0
- data/config/locales/en.yml +209 -0
- data/lib/metasploit/model.rb +38 -0
- data/lib/metasploit/model/architecture.rb +346 -0
- data/lib/metasploit/model/association.rb +49 -0
- data/lib/metasploit/model/association/error.rb +40 -0
- data/lib/metasploit/model/author.rb +58 -0
- data/lib/metasploit/model/authority.rb +134 -0
- data/lib/metasploit/model/authority/bid.rb +10 -0
- data/lib/metasploit/model/authority/cve.rb +10 -0
- data/lib/metasploit/model/authority/msb.rb +10 -0
- data/lib/metasploit/model/authority/osvdb.rb +10 -0
- data/lib/metasploit/model/authority/pmasa.rb +10 -0
- data/lib/metasploit/model/authority/secunia.rb +10 -0
- data/lib/metasploit/model/authority/us_cert_vu.rb +10 -0
- data/lib/metasploit/model/authority/waraxe.rb +31 -0
- data/lib/metasploit/model/authority/zdi.rb +10 -0
- data/lib/metasploit/model/base.rb +25 -0
- data/lib/metasploit/model/configuration.rb +72 -0
- data/lib/metasploit/model/configuration/autoload.rb +109 -0
- data/lib/metasploit/model/configuration/child.rb +12 -0
- data/lib/metasploit/model/configuration/error.rb +4 -0
- data/lib/metasploit/model/configuration/i18n.rb +54 -0
- data/lib/metasploit/model/configuration/parent.rb +50 -0
- data/lib/metasploit/model/configured.rb +46 -0
- data/lib/metasploit/model/derivation.rb +110 -0
- data/lib/metasploit/model/derivation/full_name.rb +25 -0
- data/lib/metasploit/model/email_address.rb +128 -0
- data/lib/metasploit/model/engine.rb +34 -0
- data/lib/metasploit/model/error.rb +7 -0
- data/lib/metasploit/model/file.rb +49 -0
- data/lib/metasploit/model/invalid.rb +17 -0
- data/lib/metasploit/model/module.rb +8 -0
- data/lib/metasploit/model/module/action.rb +58 -0
- data/lib/metasploit/model/module/ancestor.rb +494 -0
- data/lib/metasploit/model/module/architecture.rb +40 -0
- data/lib/metasploit/model/module/author.rb +47 -0
- data/lib/metasploit/model/module/class.rb +406 -0
- data/lib/metasploit/model/module/handler.rb +35 -0
- data/lib/metasploit/model/module/instance.rb +626 -0
- data/lib/metasploit/model/module/path.rb +165 -0
- data/lib/metasploit/model/module/platform.rb +38 -0
- data/lib/metasploit/model/module/rank.rb +91 -0
- data/lib/metasploit/model/module/reference.rb +38 -0
- data/lib/metasploit/model/module/stance.rb +22 -0
- data/lib/metasploit/model/module/target.rb +80 -0
- data/lib/metasploit/model/module/target/architecture.rb +42 -0
- data/lib/metasploit/model/module/target/platform.rb +42 -0
- data/lib/metasploit/model/module/type.rb +44 -0
- data/lib/metasploit/model/nilify_blanks.rb +53 -0
- data/lib/metasploit/model/platform.rb +250 -0
- data/lib/metasploit/model/real_pathname.rb +18 -0
- data/lib/metasploit/model/reference.rb +108 -0
- data/lib/metasploit/model/search.rb +63 -0
- data/lib/metasploit/model/search/association.rb +32 -0
- data/lib/metasploit/model/search/attribute.rb +51 -0
- data/lib/metasploit/model/search/operation.rb +31 -0
- data/lib/metasploit/model/search/operation/integer/value.rb +33 -0
- data/lib/metasploit/model/search/operation/string/value.rb +14 -0
- data/lib/metasploit/model/search/operator.rb +10 -0
- data/lib/metasploit/model/search/operator/help.rb +47 -0
- data/lib/metasploit/model/search/with.rb +40 -0
- data/lib/metasploit/model/spec.rb +140 -0
- data/lib/metasploit/model/spec/error.rb +9 -0
- data/lib/metasploit/model/spec/i18n_exception_handler.rb +19 -0
- data/lib/metasploit/model/spec/pathname_collision.rb +28 -0
- data/lib/metasploit/model/spec/template/write.rb +42 -0
- data/lib/metasploit/model/spec/temporary_pathname.rb +59 -0
- data/lib/metasploit/model/translation.rb +31 -0
- data/lib/metasploit/model/version.rb +31 -0
- data/lib/metasploit/model/visitation.rb +9 -0
- data/lib/metasploit/model/visitation/visit.rb +103 -0
- data/lib/tasks/yard.rake +30 -0
- data/metasploit-model.gemspec +39 -0
- data/script/rails +9 -0
- data/spec/app/models/metasploit/model/association/reflection_spec.rb +48 -0
- data/spec/app/models/metasploit/model/module/ancestor/spec/template_spec.rb +174 -0
- data/spec/app/models/metasploit/model/module/class/spec/template_spec.rb +222 -0
- data/spec/app/models/metasploit/model/module/instance/spec/template_spec.rb +201 -0
- data/spec/app/models/metasploit/model/search/group/base_spec.rb +5 -0
- data/spec/app/models/metasploit/model/search/group/intersection_spec.rb +5 -0
- data/spec/app/models/metasploit/model/search/group/union_spec.rb +5 -0
- data/spec/app/models/metasploit/model/search/operation/base_spec.rb +70 -0
- data/spec/app/models/metasploit/model/search/operation/boolean_spec.rb +56 -0
- data/spec/app/models/metasploit/model/search/operation/date_spec.rb +89 -0
- data/spec/app/models/metasploit/model/search/operation/integer_spec.rb +9 -0
- data/spec/app/models/metasploit/model/search/operation/null_spec.rb +64 -0
- data/spec/app/models/metasploit/model/search/operation/set/integer_spec.rb +7 -0
- data/spec/app/models/metasploit/model/search/operation/set/string_spec.rb +7 -0
- data/spec/app/models/metasploit/model/search/operation/set_spec.rb +126 -0
- data/spec/app/models/metasploit/model/search/operation/string_spec.rb +9 -0
- data/spec/app/models/metasploit/model/search/operation/union_spec.rb +124 -0
- data/spec/app/models/metasploit/model/search/operator/association_spec.rb +108 -0
- data/spec/app/models/metasploit/model/search/operator/attribute_spec.rb +104 -0
- data/spec/app/models/metasploit/model/search/operator/base_spec.rb +34 -0
- data/spec/app/models/metasploit/model/search/operator/delegation_spec.rb +108 -0
- data/spec/app/models/metasploit/model/search/operator/deprecated/app_spec.rb +62 -0
- data/spec/app/models/metasploit/model/search/operator/deprecated/author_spec.rb +161 -0
- data/spec/app/models/metasploit/model/search/operator/deprecated/authority_spec.rb +123 -0
- data/spec/app/models/metasploit/model/search/operator/deprecated/platform_spec.rb +112 -0
- data/spec/app/models/metasploit/model/search/operator/deprecated/ref_spec.rb +327 -0
- data/spec/app/models/metasploit/model/search/operator/deprecated/text_spec.rb +357 -0
- data/spec/app/models/metasploit/model/search/operator/null_spec.rb +41 -0
- data/spec/app/models/metasploit/model/search/operator/single_spec.rb +327 -0
- data/spec/app/models/metasploit/model/search/operator/union_spec.rb +92 -0
- data/spec/app/models/metasploit/model/search/query_spec.rb +742 -0
- data/spec/app/models/metasploit/model/spec/template_spec.rb +23 -0
- data/spec/app/models/metasploit/model/visitation/visitor_spec.rb +45 -0
- data/spec/app/validators/derivation_validator_spec.rb +92 -0
- data/spec/app/validators/dynamic_length_validator_spec.rb +293 -0
- data/spec/app/validators/ip_format_validator_spec.rb +124 -0
- data/spec/app/validators/nil_validator_spec.rb +69 -0
- data/spec/app/validators/parameters_validator_spec.rb +342 -0
- data/spec/app/validators/password_is_strong_validator_spec.rb +250 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/mailers/.gitkeep +0 -0
- data/spec/dummy/app/models/dummy/architecture.rb +92 -0
- data/spec/dummy/app/models/dummy/author.rb +15 -0
- data/spec/dummy/app/models/dummy/authority.rb +130 -0
- data/spec/dummy/app/models/dummy/email_address.rb +27 -0
- data/spec/dummy/app/models/dummy/module/action.rb +25 -0
- data/spec/dummy/app/models/dummy/module/ancestor.rb +67 -0
- data/spec/dummy/app/models/dummy/module/architecture.rb +19 -0
- data/spec/dummy/app/models/dummy/module/author.rb +28 -0
- data/spec/dummy/app/models/dummy/module/class.rb +69 -0
- data/spec/dummy/app/models/dummy/module/instance.rb +209 -0
- data/spec/dummy/app/models/dummy/module/path.rb +64 -0
- data/spec/dummy/app/models/dummy/module/platform.rb +19 -0
- data/spec/dummy/app/models/dummy/module/rank.rb +44 -0
- data/spec/dummy/app/models/dummy/module/reference.rb +19 -0
- data/spec/dummy/app/models/dummy/module/target.rb +62 -0
- data/spec/dummy/app/models/dummy/module/target/architecture.rb +19 -0
- data/spec/dummy/app/models/dummy/module/target/platform.rb +19 -0
- data/spec/dummy/app/models/dummy/platform.rb +58 -0
- data/spec/dummy/app/models/dummy/reference.rb +31 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +43 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +27 -0
- data/spec/dummy/config/environments/production.rb +63 -0
- data/spec/dummy/config/environments/test.rb +29 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/inflections.rb +15 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +9 -0
- data/spec/dummy/config/locales/en.yml +1 -0
- data/spec/dummy/config/routes.rb +2 -0
- data/spec/dummy/db/schema.rb +707 -0
- data/spec/dummy/lib/assets/.gitkeep +0 -0
- data/spec/dummy/log/.gitkeep +0 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/spec/factories/dummy/architectures.rb +13 -0
- data/spec/dummy/spec/factories/dummy/authorities.rb +32 -0
- data/spec/dummy/spec/factories/dummy/authors.rb +8 -0
- data/spec/dummy/spec/factories/dummy/email_addresses.rb +8 -0
- data/spec/dummy/spec/factories/dummy/module/actions.rb +13 -0
- data/spec/dummy/spec/factories/dummy/module/ancestors.rb +45 -0
- data/spec/dummy/spec/factories/dummy/module/architectures.rb +35 -0
- data/spec/dummy/spec/factories/dummy/module/authors.rb +10 -0
- data/spec/dummy/spec/factories/dummy/module/classes.rb +40 -0
- data/spec/dummy/spec/factories/dummy/module/instances.rb +86 -0
- data/spec/dummy/spec/factories/dummy/module/paths.rb +16 -0
- data/spec/dummy/spec/factories/dummy/module/platforms.rb +35 -0
- data/spec/dummy/spec/factories/dummy/module/ranks.rb +14 -0
- data/spec/dummy/spec/factories/dummy/module/references.rb +17 -0
- data/spec/dummy/spec/factories/dummy/module/target/architectures.rb +40 -0
- data/spec/dummy/spec/factories/dummy/module/target/platforms.rb +41 -0
- data/spec/dummy/spec/factories/dummy/module/targets.rb +46 -0
- data/spec/dummy/spec/factories/dummy/platforms.rb +3 -0
- data/spec/dummy/spec/factories/dummy/references.rb +26 -0
- data/spec/factories/metasploit/model/architectures.rb +6 -0
- data/spec/factories/metasploit/model/association/reflections.rb +9 -0
- data/spec/factories/metasploit/model/authorities.rb +28 -0
- data/spec/factories/metasploit/model/authors.rb +9 -0
- data/spec/factories/metasploit/model/bases.rb +10 -0
- data/spec/factories/metasploit/model/email_addresses.rb +14 -0
- data/spec/factories/metasploit/model/module/actions.rb +9 -0
- data/spec/factories/metasploit/model/module/ancestors.rb +180 -0
- data/spec/factories/metasploit/model/module/architectures.rb +15 -0
- data/spec/factories/metasploit/model/module/classes.rb +47 -0
- data/spec/factories/metasploit/model/module/handlers.rb +3 -0
- data/spec/factories/metasploit/model/module/instances.rb +83 -0
- data/spec/factories/metasploit/model/module/paths.rb +51 -0
- data/spec/factories/metasploit/model/module/platforms.rb +15 -0
- data/spec/factories/metasploit/model/module/ranks.rb +9 -0
- data/spec/factories/metasploit/model/module/references.rb +11 -0
- data/spec/factories/metasploit/model/module/stances.rb +3 -0
- data/spec/factories/metasploit/model/module/targets.rb +22 -0
- data/spec/factories/metasploit/model/module/types.rb +5 -0
- data/spec/factories/metasploit/model/references.rb +88 -0
- data/spec/factories/metasploit/model/search/operator/associations.rb +5 -0
- data/spec/factories/metasploit/model/search/operator/attributes.rb +7 -0
- data/spec/factories/metasploit/model/search/operator/bases.rb +5 -0
- data/spec/lib/metasploit/model/architecture_spec.rb +52 -0
- data/spec/lib/metasploit/model/association/error_spec.rb +48 -0
- data/spec/lib/metasploit/model/association_spec.rb +145 -0
- data/spec/lib/metasploit/model/author_spec.rb +6 -0
- data/spec/lib/metasploit/model/authority/bid_spec.rb +17 -0
- data/spec/lib/metasploit/model/authority/cve_spec.rb +17 -0
- data/spec/lib/metasploit/model/authority/msb_spec.rb +17 -0
- data/spec/lib/metasploit/model/authority/osvdb_spec.rb +17 -0
- data/spec/lib/metasploit/model/authority/pmasa_spec.rb +17 -0
- data/spec/lib/metasploit/model/authority/secunia_spec.rb +17 -0
- data/spec/lib/metasploit/model/authority/us_cert_vu_spec.rb +17 -0
- data/spec/lib/metasploit/model/authority/waraxe_spec.rb +51 -0
- data/spec/lib/metasploit/model/authority/zdi_spec.rb +21 -0
- data/spec/lib/metasploit/model/authority_spec.rb +10 -0
- data/spec/lib/metasploit/model/base_spec.rb +58 -0
- data/spec/lib/metasploit/model/configuration/autoload_spec.rb +165 -0
- data/spec/lib/metasploit/model/configuration/child_spec.rb +24 -0
- data/spec/lib/metasploit/model/configuration/error_spec.rb +5 -0
- data/spec/lib/metasploit/model/configuration/i18n_spec.rb +103 -0
- data/spec/lib/metasploit/model/configuration_spec.rb +106 -0
- data/spec/lib/metasploit/model/configured_spec.rb +41 -0
- data/spec/lib/metasploit/model/derivation/full_name_spec.rb +75 -0
- data/spec/lib/metasploit/model/derivation_spec.rb +217 -0
- data/spec/lib/metasploit/model/email_address_spec.rb +19 -0
- data/spec/lib/metasploit/model/engine_spec.rb +84 -0
- data/spec/lib/metasploit/model/file_spec.rb +43 -0
- data/spec/lib/metasploit/model/invalid_spec.rb +54 -0
- data/spec/lib/metasploit/model/module/action_spec.rb +6 -0
- data/spec/lib/metasploit/model/module/ancestor_spec.rb +6 -0
- data/spec/lib/metasploit/model/module/architecture_spec.rb +9 -0
- data/spec/lib/metasploit/model/module/author_spec.rb +6 -0
- data/spec/lib/metasploit/model/module/class_spec.rb +19 -0
- data/spec/lib/metasploit/model/module/handler_spec.rb +61 -0
- data/spec/lib/metasploit/model/module/instance_spec.rb +183 -0
- data/spec/lib/metasploit/model/module/path_spec.rb +6 -0
- data/spec/lib/metasploit/model/module/platform_spec.rb +9 -0
- data/spec/lib/metasploit/model/module/rank_spec.rb +29 -0
- data/spec/lib/metasploit/model/module/reference_spec.rb +9 -0
- data/spec/lib/metasploit/model/module/stance_spec.rb +30 -0
- data/spec/lib/metasploit/model/module/target/architecture_spec.rb +9 -0
- data/spec/lib/metasploit/model/module/target/platform_spec.rb +9 -0
- data/spec/lib/metasploit/model/module/target_spec.rb +9 -0
- data/spec/lib/metasploit/model/module/type_spec.rb +125 -0
- data/spec/lib/metasploit/model/nilify_blanks_spec.rb +156 -0
- data/spec/lib/metasploit/model/platform_spec.rb +100 -0
- data/spec/lib/metasploit/model/reference_spec.rb +21 -0
- data/spec/lib/metasploit/model/search/association_spec.rb +33 -0
- data/spec/lib/metasploit/model/search/attribute_spec.rb +99 -0
- data/spec/lib/metasploit/model/search/operation/integer/value_spec.rb +20 -0
- data/spec/lib/metasploit/model/search/operation/string/value_spec.rb +20 -0
- data/spec/lib/metasploit/model/search/operation_spec.rb +144 -0
- data/spec/lib/metasploit/model/search/operator/help_spec.rb +41 -0
- data/spec/lib/metasploit/model/search/with_spec.rb +81 -0
- data/spec/lib/metasploit/model/search_spec.rb +230 -0
- data/spec/lib/metasploit/model/spec/error_spec.rb +5 -0
- data/spec/lib/metasploit/model/spec/i18n_exception_handler_spec.rb +42 -0
- data/spec/lib/metasploit/model/spec/pathname_collision_spec.rb +55 -0
- data/spec/lib/metasploit/model/spec_spec.rb +114 -0
- data/spec/lib/metasploit/model/translation_spec.rb +82 -0
- data/spec/lib/metasploit/model/version_spec.rb +141 -0
- data/spec/lib/metasploit/model/visitation/visit_spec.rb +316 -0
- data/spec/lib/metasploit/model_spec.rb +68 -0
- data/spec/spec_helper.rb +48 -0
- data/spec/support/shared/contexts/metasploit/model/configuration.rb +11 -0
- data/spec/support/shared/contexts/metasploit/model/module/ancestor/contents/metasploit_module.rb +12 -0
- data/spec/support/shared/contexts/metasploit/model/module/ancestor/factory/contents.rb +10 -0
- data/spec/support/shared/contexts/metasploit/model/module/ancestor/factory/contents/metasploit_module.rb +15 -0
- data/spec/support/shared/contexts/metasploit/model/search/operator/union/children.rb +13 -0
- data/spec/support/shared/examples/derives.rb +115 -0
- data/spec/support/shared/examples/metasploit/model/architecture.rb +425 -0
- data/spec/support/shared/examples/metasploit/model/architecture/seed.rb +25 -0
- data/spec/support/shared/examples/metasploit/model/author.rb +27 -0
- data/spec/support/shared/examples/metasploit/model/authority.rb +124 -0
- data/spec/support/shared/examples/metasploit/model/authority/seed.rb +49 -0
- data/spec/support/shared/examples/metasploit/model/configuration/parent/child.rb +60 -0
- data/spec/support/shared/examples/metasploit/model/email_address.rb +220 -0
- data/spec/support/shared/examples/metasploit/model/module/action.rb +26 -0
- data/spec/support/shared/examples/metasploit/model/module/ancestor.rb +2004 -0
- data/spec/support/shared/examples/metasploit/model/module/ancestor/payload_factory.rb +63 -0
- data/spec/support/shared/examples/metasploit/model/module/architecture.rb +36 -0
- data/spec/support/shared/examples/metasploit/model/module/author.rb +29 -0
- data/spec/support/shared/examples/metasploit/model/module/class.rb +1514 -0
- data/spec/support/shared/examples/metasploit/model/module/handler.rb +21 -0
- data/spec/support/shared/examples/metasploit/model/module/instance.rb +1384 -0
- data/spec/support/shared/examples/metasploit/model/module/instance/class_methods.rb +537 -0
- data/spec/support/shared/examples/metasploit/model/module/instance/is_not_stanced_with_module_type.rb +22 -0
- data/spec/support/shared/examples/metasploit/model/module/instance/is_stanced_with_module_type.rb +38 -0
- data/spec/support/shared/examples/metasploit/model/module/instance/validates/dynamic_length_of.rb +131 -0
- data/spec/support/shared/examples/metasploit/model/module/path.rb +493 -0
- data/spec/support/shared/examples/metasploit/model/module/platform.rb +36 -0
- data/spec/support/shared/examples/metasploit/model/module/rank.rb +92 -0
- data/spec/support/shared/examples/metasploit/model/module/reference.rb +16 -0
- data/spec/support/shared/examples/metasploit/model/module/target.rb +29 -0
- data/spec/support/shared/examples/metasploit/model/module/target/architecture.rb +56 -0
- data/spec/support/shared/examples/metasploit/model/module/target/platform.rb +56 -0
- data/spec/support/shared/examples/metasploit/model/platform.rb +213 -0
- data/spec/support/shared/examples/metasploit/model/real_pathname.rb +29 -0
- data/spec/support/shared/examples/metasploit/model/reference.rb +410 -0
- data/spec/support/shared/examples/metasploit/model/search/operation/integer/value.rb +79 -0
- data/spec/support/shared/examples/metasploit/model/search/operation/string/value.rb +53 -0
- data/spec/support/shared/examples/metasploit/model/search/operator/help.rb +134 -0
- data/spec/support/shared/examples/metasploit/model/translation.rb +37 -0
- data/spec/support/shared/examples/search/query.rb +43 -0
- data/spec/support/shared/examples/search/query/metasploit/model/search/operator/deprecated/app.rb +44 -0
- data/spec/support/shared/examples/search/query/metasploit/model/search/operator/deprecated/authority.rb +60 -0
- data/spec/support/shared/examples/search_association.rb +13 -0
- data/spec/support/shared/examples/search_attribute.rb +27 -0
- data/spec/support/shared/examples/search_with.rb +36 -0
- data/spec/support/shared/matchers/allow_attribute.rb +17 -0
- data/spec/support/templates/metasploit/model/module/ancestors/_attributes.rb.erb +9 -0
- data/spec/support/templates/metasploit/model/module/ancestors/_methods.rb.erb +8 -0
- data/spec/support/templates/metasploit/model/module/ancestors/_validations.rb.erb +6 -0
- data/spec/support/templates/metasploit/model/module/ancestors/base.rb.erb +3 -0
- data/spec/support/templates/metasploit/model/module/ancestors/module_types/_auxiliary.rb.erb +1 -0
- data/spec/support/templates/metasploit/model/module/ancestors/module_types/_encoder.rb.erb +1 -0
- data/spec/support/templates/metasploit/model/module/ancestors/module_types/_exploit.rb.erb +1 -0
- data/spec/support/templates/metasploit/model/module/ancestors/module_types/_non_payload.rb.erb +5 -0
- data/spec/support/templates/metasploit/model/module/ancestors/module_types/_nop.rb.erb +1 -0
- data/spec/support/templates/metasploit/model/module/ancestors/module_types/_payload.rb.erb +4 -0
- data/spec/support/templates/metasploit/model/module/ancestors/module_types/_post.rb.erb +1 -0
- data/spec/support/templates/metasploit/model/module/ancestors/payload_types/_handled.rb.erb +20 -0
- data/spec/support/templates/metasploit/model/module/ancestors/payload_types/_single.rb.erb +1 -0
- data/spec/support/templates/metasploit/model/module/ancestors/payload_types/_stage.rb.erb +0 -0
- data/spec/support/templates/metasploit/model/module/ancestors/payload_types/_stager.rb.erb +1 -0
- data/spec/support/templates/metasploit/model/module/classes/_methods.rb.erb +9 -0
- metadata +747 -0
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Metasploit::Model::Module::Platform,
|
4
|
+
# setting the metadata type makes rspec-rails include RSpec::Rails::ModelExampleGroup, which includes a better
|
5
|
+
# be_valid matcher that will print full error messages
|
6
|
+
type: :model do
|
7
|
+
it_should_behave_like 'Metasploit::Model::Module::Platform',
|
8
|
+
namespace_name: 'Dummy'
|
9
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Metasploit::Model::Module::Rank do
|
4
|
+
it_should_behave_like 'Metasploit::Model::Module::Rank',
|
5
|
+
namespace_name: 'Dummy'
|
6
|
+
|
7
|
+
# Not in 'Metasploit::Model::Module::Rank' shared example since sequence should not be overridden in namespaces.
|
8
|
+
context 'sequences' do
|
9
|
+
context 'metasploit_model_module_rank_name' do
|
10
|
+
subject(:metasploit_model_module_rank_name) do
|
11
|
+
FactoryGirl.generate :metasploit_model_module_rank_name
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should be key in Metasploit::Model::Module::Rank::NUMBER_BY_NAME' do
|
15
|
+
Metasploit::Model::Module::Rank::NUMBER_BY_NAME.should have_key(metasploit_model_module_rank_name)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'metasploit_model_module_rank_number' do
|
20
|
+
subject(:metasploit_model_module_rank_number) do
|
21
|
+
FactoryGirl.generate :metasploit_model_module_rank_number
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should be value in Metasploit::Model::Module::Rank::NUMBER_BY_NAME' do
|
25
|
+
Metasploit::Model::Module::Rank::NUMBER_BY_NAME.should have_value(metasploit_model_module_rank_number)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Metasploit::Model::Module::Reference,
|
4
|
+
# setting the metadata type makes rspec-rails include RSpec::Rails::ModelExampleGroup, which includes a better
|
5
|
+
# be_valid matcher that will print full error messages
|
6
|
+
type: :model do
|
7
|
+
it_should_behave_like 'Metasploit::Model::Module::Reference',
|
8
|
+
namespace_name: 'Dummy'
|
9
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Metasploit::Model::Module::Stance do
|
4
|
+
context 'CONSTANTS' do
|
5
|
+
context 'ALL' do
|
6
|
+
subject(:all) do
|
7
|
+
described_class::ALL
|
8
|
+
end
|
9
|
+
|
10
|
+
it { should include(described_class::AGGRESSIVE) }
|
11
|
+
it { should include(described_class::PASSIVE) }
|
12
|
+
end
|
13
|
+
|
14
|
+
context 'AGGRESSIVE' do
|
15
|
+
subject(:aggressive) do
|
16
|
+
described_class::AGGRESSIVE
|
17
|
+
end
|
18
|
+
|
19
|
+
it { should == 'aggressive' }
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'PASSIVE' do
|
23
|
+
subject(:passive) do
|
24
|
+
described_class::PASSIVE
|
25
|
+
end
|
26
|
+
|
27
|
+
it { should == 'passive' }
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Metasploit::Model::Module::Target::Architecture,
|
4
|
+
# setting the metadata type makes rspec-rails include RSpec::Rails::ModelExampleGroup, which includes a better
|
5
|
+
# be_valid matcher that will print full error messages
|
6
|
+
type: :model do
|
7
|
+
it_should_behave_like 'Metasploit::Model::Module::Target::Architecture',
|
8
|
+
namespace_name: 'Dummy'
|
9
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Metasploit::Model::Module::Target::Platform,
|
4
|
+
# setting the metadata type makes rspec-rails include RSpec::Rails::ModelExampleGroup, which includes a better
|
5
|
+
# be_valid matcher that will print full error messages
|
6
|
+
type: :model do
|
7
|
+
it_should_behave_like 'Metasploit::Model::Module::Target::Platform',
|
8
|
+
namespace_name: 'Dummy'
|
9
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Metasploit::Model::Module::Target,
|
4
|
+
# setting the metadata type makes rspec-rails include RSpec::Rails::ModelExampleGroup, which includes a better
|
5
|
+
# be_valid matcher that will print full error messages
|
6
|
+
type: :model do
|
7
|
+
it_should_behave_like 'Metasploit::Model::Module::Target',
|
8
|
+
namespace_name: 'Dummy'
|
9
|
+
end
|
@@ -0,0 +1,125 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Metasploit::Model::Module::Type do
|
4
|
+
context 'CONSTANTS' do
|
5
|
+
context 'ALL' do
|
6
|
+
subject(:all) do
|
7
|
+
described_class::ALL
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should not include ANY' do
|
11
|
+
all.should_not include(described_class::ANY)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'should include AUX' do
|
15
|
+
all.should include(described_class::AUX)
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should include ENCODER' do
|
19
|
+
all.should include(described_class::ENCODER)
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'should include EXPLOIT' do
|
23
|
+
all.should include(described_class::EXPLOIT)
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should include NOP' do
|
27
|
+
all.should include(described_class::NOP)
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should include PAYLOAD' do
|
31
|
+
all.should include(described_class::PAYLOAD)
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'should include POST' do
|
35
|
+
all.should include(described_class::POST)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'ANY' do
|
40
|
+
subject(:any) do
|
41
|
+
described_class::ANY
|
42
|
+
end
|
43
|
+
|
44
|
+
it { should == '_any_' }
|
45
|
+
end
|
46
|
+
|
47
|
+
context 'AUX' do
|
48
|
+
subject(:aux) do
|
49
|
+
described_class::AUX
|
50
|
+
end
|
51
|
+
|
52
|
+
it { should == 'auxiliary' }
|
53
|
+
end
|
54
|
+
|
55
|
+
context 'ENCODER' do
|
56
|
+
subject(:encoder) do
|
57
|
+
described_class::ENCODER
|
58
|
+
end
|
59
|
+
|
60
|
+
it { should == 'encoder' }
|
61
|
+
end
|
62
|
+
|
63
|
+
context 'EXPLOIT' do
|
64
|
+
subject(:exploit) do
|
65
|
+
described_class::EXPLOIT
|
66
|
+
end
|
67
|
+
|
68
|
+
it { should == 'exploit' }
|
69
|
+
end
|
70
|
+
|
71
|
+
context 'NON_PAYLOAD' do
|
72
|
+
subject(:non_payload) do
|
73
|
+
described_class::NON_PAYLOAD
|
74
|
+
end
|
75
|
+
|
76
|
+
it 'should include AUX' do
|
77
|
+
non_payload.should include(described_class::AUX)
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'should include ENCODER' do
|
81
|
+
non_payload.should include(described_class::ENCODER)
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'should include EXPLOIT' do
|
85
|
+
non_payload.should include(described_class::EXPLOIT)
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'should include NOP' do
|
89
|
+
non_payload.should include(described_class::NOP)
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'should not include PAYLOAD' do
|
93
|
+
non_payload.should_not include(described_class::PAYLOAD)
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'should include POST' do
|
97
|
+
non_payload.should include(described_class::POST)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
context 'NOP' do
|
102
|
+
subject(:nop) do
|
103
|
+
described_class::NOP
|
104
|
+
end
|
105
|
+
|
106
|
+
it { should == 'nop' }
|
107
|
+
end
|
108
|
+
|
109
|
+
context 'PAYLOAD' do
|
110
|
+
subject(:payload_types) do
|
111
|
+
described_class::PAYLOAD
|
112
|
+
end
|
113
|
+
|
114
|
+
it { should == 'payload' }
|
115
|
+
end
|
116
|
+
|
117
|
+
context 'POST' do
|
118
|
+
subject(:post) do
|
119
|
+
described_class::POST
|
120
|
+
end
|
121
|
+
|
122
|
+
it { should == 'post'}
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
@@ -0,0 +1,156 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Metasploit::Model::NilifyBlanks do
|
4
|
+
let(:base_class) do
|
5
|
+
# capture for class_eval scope
|
6
|
+
described_class = self.described_class
|
7
|
+
|
8
|
+
Class.new do
|
9
|
+
extend ActiveModel::Callbacks
|
10
|
+
include ActiveModel::Validations
|
11
|
+
include ActiveModel::Validations::Callbacks
|
12
|
+
|
13
|
+
include described_class
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
context 'included' do
|
18
|
+
let(:base_class) do
|
19
|
+
Class.new do
|
20
|
+
extend ActiveModel::Callbacks
|
21
|
+
include ActiveModel::Validations
|
22
|
+
include ActiveModel::Validations::Callbacks
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should register #nilify_blanks as a before validation callback' do
|
27
|
+
base_class.should_receive(:before_validation).with(:nilify_blanks)
|
28
|
+
|
29
|
+
# capture for class_eval scope
|
30
|
+
described_class = self.described_class
|
31
|
+
|
32
|
+
base_class.class_eval do
|
33
|
+
include described_class
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context 'nilify_blank' do
|
39
|
+
it 'should support adding multiple attributes' do
|
40
|
+
attributes = [:a, :b]
|
41
|
+
|
42
|
+
base_class.nilify_blank *attributes
|
43
|
+
|
44
|
+
attributes.each do |attribute|
|
45
|
+
base_class.nilify_blank_attribute_set.should include(attribute)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'should not add duplicate attributes' do
|
50
|
+
attribute = :a
|
51
|
+
|
52
|
+
base_class.nilify_blank attribute
|
53
|
+
base_class.nilify_blank attribute
|
54
|
+
|
55
|
+
base_class.nilify_blank_attribute_set.length.should == 1
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
context '#nilify_blanks' do
|
60
|
+
subject(:nilify_blanks) do
|
61
|
+
base_instance.nilify_blanks
|
62
|
+
end
|
63
|
+
|
64
|
+
let(:base_instance) do
|
65
|
+
base_class.new
|
66
|
+
end
|
67
|
+
|
68
|
+
let(:value) do
|
69
|
+
'value'
|
70
|
+
end
|
71
|
+
|
72
|
+
before(:each) do
|
73
|
+
base_class.class_eval do
|
74
|
+
#
|
75
|
+
# Attributes
|
76
|
+
#
|
77
|
+
|
78
|
+
# @!attribute [rw] blank
|
79
|
+
# @return [String, nil]
|
80
|
+
attr_accessor :blank
|
81
|
+
|
82
|
+
#
|
83
|
+
# Callbacks
|
84
|
+
#
|
85
|
+
|
86
|
+
nilify_blank :blank
|
87
|
+
end
|
88
|
+
|
89
|
+
base_instance.blank = value
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'should check if value responds to blank?' do
|
93
|
+
value.should_receive(:respond_to?).with(:blank?)
|
94
|
+
|
95
|
+
nilify_blanks
|
96
|
+
end
|
97
|
+
|
98
|
+
context 'with value responds to blank?' do
|
99
|
+
it 'should call blank?' do
|
100
|
+
value.should_receive(:blank?)
|
101
|
+
|
102
|
+
nilify_blanks
|
103
|
+
end
|
104
|
+
|
105
|
+
context 'with blank' do
|
106
|
+
let(:value) do
|
107
|
+
''
|
108
|
+
end
|
109
|
+
|
110
|
+
it 'should set attribute to nil' do
|
111
|
+
nilify_blanks
|
112
|
+
|
113
|
+
base_instance.blank.should be_nil
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
context 'without blank' do
|
118
|
+
let(:value) do
|
119
|
+
'value'
|
120
|
+
end
|
121
|
+
|
122
|
+
it 'should not change attribute' do
|
123
|
+
expect {
|
124
|
+
nilify_blanks
|
125
|
+
}.to_not change(base_instance, :blank)
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
context 'without value responds to blank?' do
|
131
|
+
let(:value) do
|
132
|
+
double('Value')
|
133
|
+
end
|
134
|
+
|
135
|
+
before(:each) do
|
136
|
+
value.stub(:respond_to?).with(:blank?).and_return(false)
|
137
|
+
end
|
138
|
+
|
139
|
+
it 'should not call blank?' do
|
140
|
+
value.should_not_receive(:blank?)
|
141
|
+
|
142
|
+
nilify_blanks
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
context 'nilify_blank_attribute_set' do
|
148
|
+
subject(:nilify_blank_attribute_set) do
|
149
|
+
base_class.nilify_blank_attribute_set
|
150
|
+
end
|
151
|
+
|
152
|
+
it 'should default to an empty Set' do
|
153
|
+
nilify_blank_attribute_set.should == Set.new
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Metasploit::Model::Platform,
|
4
|
+
# setting the metadata type makes rspec-rails include RSpec::Rails::ModelExampleGroup, which includes a better
|
5
|
+
# be_valid matcher that will print full error messages
|
6
|
+
type: :model do
|
7
|
+
it_should_behave_like 'Metasploit::Model::Platform',
|
8
|
+
namespace_name: 'Dummy' do
|
9
|
+
def attribute_type(attribute)
|
10
|
+
type_by_attribute = {
|
11
|
+
fully_qualified_name: :string
|
12
|
+
}
|
13
|
+
|
14
|
+
type_by_attribute.fetch(attribute)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# @note Not tested in 'Metasploit::Model::Platform' shared example because it is a module method and not a class
|
19
|
+
# method because seeding should always refer back to {Metasploit::Model::Platform} and not the classes in which
|
20
|
+
# it is included.
|
21
|
+
context 'fully_qualified_names' do
|
22
|
+
subject(:fully_qualified_name_set) do
|
23
|
+
described_class.fully_qualified_name_set
|
24
|
+
end
|
25
|
+
|
26
|
+
it { should include 'AIX' }
|
27
|
+
it { should include 'Android' }
|
28
|
+
it { should include 'BSD' }
|
29
|
+
it { should include 'BSDi' }
|
30
|
+
it { should include 'Cisco' }
|
31
|
+
it { should include 'Firefox' }
|
32
|
+
it { should include 'FreeBSD' }
|
33
|
+
it { should include 'HPUX' }
|
34
|
+
it { should include 'IRIX' }
|
35
|
+
it { should include 'Java' }
|
36
|
+
it { should include 'Javascript' }
|
37
|
+
it { should include 'NetBSD' }
|
38
|
+
it { should include 'Netware' }
|
39
|
+
it { should include 'NodeJS' }
|
40
|
+
it { should include 'OpenBSD' }
|
41
|
+
it { should include 'OSX' }
|
42
|
+
it { should include 'PHP' }
|
43
|
+
it { should include 'Python' }
|
44
|
+
it { should include 'Ruby' }
|
45
|
+
|
46
|
+
it { should include 'Solaris'}
|
47
|
+
it { should include 'Solaris 4' }
|
48
|
+
it { should include 'Solaris 5' }
|
49
|
+
it { should include 'Solaris 6' }
|
50
|
+
it { should include 'Solaris 7' }
|
51
|
+
it { should include 'Solaris 8' }
|
52
|
+
it { should include 'Solaris 9' }
|
53
|
+
it { should include 'Solaris 10' }
|
54
|
+
|
55
|
+
it { should include 'Windows' }
|
56
|
+
|
57
|
+
it { should include 'Windows 95' }
|
58
|
+
|
59
|
+
it { should include 'Windows 98' }
|
60
|
+
it { should include 'Windows 98 FE' }
|
61
|
+
it { should include 'Windows 98 SE' }
|
62
|
+
|
63
|
+
it { should include 'Windows ME' }
|
64
|
+
|
65
|
+
it { should include 'Windows NT' }
|
66
|
+
it { should include 'Windows NT SP0' }
|
67
|
+
it { should include 'Windows NT SP1' }
|
68
|
+
it { should include 'Windows NT SP2' }
|
69
|
+
it { should include 'Windows NT SP3' }
|
70
|
+
it { should include 'Windows NT SP4' }
|
71
|
+
it { should include 'Windows NT SP5' }
|
72
|
+
it { should include 'Windows NT SP6' }
|
73
|
+
it { should include 'Windows NT SP6a' }
|
74
|
+
|
75
|
+
it { should include 'Windows 2000' }
|
76
|
+
it { should include 'Windows 2000 SP0' }
|
77
|
+
it { should include 'Windows 2000 SP1' }
|
78
|
+
it { should include 'Windows 2000 SP2' }
|
79
|
+
it { should include 'Windows 2000 SP3' }
|
80
|
+
it { should include 'Windows 2000 SP4' }
|
81
|
+
|
82
|
+
it { should include 'Windows XP' }
|
83
|
+
it { should include 'Windows XP SP0' }
|
84
|
+
it { should include 'Windows XP SP1' }
|
85
|
+
it { should include 'Windows XP SP2' }
|
86
|
+
it { should include 'Windows XP SP3' }
|
87
|
+
|
88
|
+
it { should include 'Windows 2003' }
|
89
|
+
it { should include 'Windows 2003 SP0' }
|
90
|
+
it { should include 'Windows 2003 SP1' }
|
91
|
+
|
92
|
+
it { should include 'Windows Vista' }
|
93
|
+
it { should include 'Windows Vista SP0' }
|
94
|
+
it { should include 'Windows Vista SP1' }
|
95
|
+
|
96
|
+
it { should include 'Windows 7' }
|
97
|
+
|
98
|
+
it { should include 'UNIX' }
|
99
|
+
end
|
100
|
+
end
|