From db9b2f5c228289b3da82d231b985c910e12d969c Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Thu, 27 Sep 2007 10:19:48 +0000 Subject: Extract InflectorTestCases so both inflector and string inflections tests can use them. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7655 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activesupport/test/abstract_unit.rb | 1 + activesupport/test/core_ext/string_ext_test.rb | 25 +-- activesupport/test/inflector_test.rb | 208 +------------------------ activesupport/test/inflector_test_cases.rb | 208 +++++++++++++++++++++++++ 4 files changed, 225 insertions(+), 217 deletions(-) create mode 100644 activesupport/test/inflector_test_cases.rb (limited to 'activesupport/test') diff --git a/activesupport/test/abstract_unit.rb b/activesupport/test/abstract_unit.rb index 791efb549a..da157a81c8 100644 --- a/activesupport/test/abstract_unit.rb +++ b/activesupport/test/abstract_unit.rb @@ -1,6 +1,7 @@ require 'test/unit' $:.unshift "#{File.dirname(__FILE__)}/../lib" +$:.unshift File.dirname(__FILE__) require 'active_support' # Wrap tests that use Mocha and skip if unavailable. diff --git a/activesupport/test/core_ext/string_ext_test.rb b/activesupport/test/core_ext/string_ext_test.rb index b588fadf4f..734974956b 100644 --- a/activesupport/test/core_ext/string_ext_test.rb +++ b/activesupport/test/core_ext/string_ext_test.rb @@ -1,9 +1,12 @@ require 'date' require File.dirname(__FILE__) + '/../abstract_unit' +require 'inflector_test_cases' class StringInflectionsTest < Test::Unit::TestCase + include InflectorTestCases + def test_pluralize - InflectorTest::SingularToPlural.each do |singular, plural| + SingularToPlural.each do |singular, plural| assert_equal(plural, singular.pluralize) end @@ -11,25 +14,25 @@ class StringInflectionsTest < Test::Unit::TestCase end def test_singularize - InflectorTest::SingularToPlural.each do |singular, plural| + SingularToPlural.each do |singular, plural| assert_equal(singular, plural.singularize) end end def test_titleize - InflectorTest::MixtureToTitleCase.each do |before, titleized| + MixtureToTitleCase.each do |before, titleized| assert_equal(titleized, before.titleize) end end def test_camelize - InflectorTest::CamelToUnderscore.each do |camel, underscore| + CamelToUnderscore.each do |camel, underscore| assert_equal(camel, underscore.camelize) end end def test_underscore - InflectorTest::CamelToUnderscore.each do |camel, underscore| + CamelToUnderscore.each do |camel, underscore| assert_equal(underscore, camel.underscore) end @@ -38,7 +41,7 @@ class StringInflectionsTest < Test::Unit::TestCase end def test_underscore_to_lower_camel - InflectorTest::UnderscoreToLowerCamel.each do |underscored, lower_camel| + UnderscoreToLowerCamel.each do |underscored, lower_camel| assert_equal(lower_camel, underscored.camelize(:lower)) end end @@ -48,29 +51,29 @@ class StringInflectionsTest < Test::Unit::TestCase end def test_foreign_key - InflectorTest::ClassNameToForeignKeyWithUnderscore.each do |klass, foreign_key| + ClassNameToForeignKeyWithUnderscore.each do |klass, foreign_key| assert_equal(foreign_key, klass.foreign_key) end - InflectorTest::ClassNameToForeignKeyWithoutUnderscore.each do |klass, foreign_key| + ClassNameToForeignKeyWithoutUnderscore.each do |klass, foreign_key| assert_equal(foreign_key, klass.foreign_key(false)) end end def test_tableize - InflectorTest::ClassNameToTableName.each do |class_name, table_name| + ClassNameToTableName.each do |class_name, table_name| assert_equal(table_name, class_name.tableize) end end def test_classify - InflectorTest::ClassNameToTableName.each do |class_name, table_name| + ClassNameToTableName.each do |class_name, table_name| assert_equal(class_name, table_name.classify) end end def test_humanize - InflectorTest::UnderscoreToHuman.each do |underscore, human| + UnderscoreToHuman.each do |underscore, human| assert_equal(human, underscore.humanize) end end diff --git a/activesupport/test/inflector_test.rb b/activesupport/test/inflector_test.rb index ebf07e1d0f..16ee50f8fb 100644 --- a/activesupport/test/inflector_test.rb +++ b/activesupport/test/inflector_test.rb @@ -1,4 +1,5 @@ require File.dirname(__FILE__) + '/abstract_unit' +require 'inflector_test_cases' module Ace module Base @@ -8,212 +9,7 @@ module Ace end class InflectorTest < Test::Unit::TestCase - SingularToPlural = { - "search" => "searches", - "switch" => "switches", - "fix" => "fixes", - "box" => "boxes", - "process" => "processes", - "address" => "addresses", - "case" => "cases", - "stack" => "stacks", - "wish" => "wishes", - "fish" => "fish", - - "category" => "categories", - "query" => "queries", - "ability" => "abilities", - "agency" => "agencies", - "movie" => "movies", - - "archive" => "archives", - - "index" => "indices", - - "wife" => "wives", - "safe" => "saves", - "half" => "halves", - - "move" => "moves", - - "salesperson" => "salespeople", - "person" => "people", - - "spokesman" => "spokesmen", - "man" => "men", - "woman" => "women", - - "basis" => "bases", - "diagnosis" => "diagnoses", - "diagnosis_a" => "diagnosis_as", - - "datum" => "data", - "medium" => "media", - "analysis" => "analyses", - - "node_child" => "node_children", - "child" => "children", - - "experience" => "experiences", - "day" => "days", - - "comment" => "comments", - "foobar" => "foobars", - "newsletter" => "newsletters", - - "old_news" => "old_news", - "news" => "news", - - "series" => "series", - "species" => "species", - - "quiz" => "quizzes", - - "perspective" => "perspectives", - - "ox" => "oxen", - "photo" => "photos", - "buffalo" => "buffaloes", - "tomato" => "tomatoes", - "dwarf" => "dwarves", - "elf" => "elves", - "information" => "information", - "equipment" => "equipment", - "bus" => "buses", - "status" => "statuses", - "status_code" => "status_codes", - "mouse" => "mice", - - "louse" => "lice", - "house" => "houses", - "octopus" => "octopi", - "virus" => "viri", - "alias" => "aliases", - "portfolio" => "portfolios", - - "vertex" => "vertices", - "matrix" => "matrices", - "matrix_fu" => "matrix_fus", - - "axis" => "axes", - "testis" => "testes", - "crisis" => "crises", - - "rice" => "rice", - "shoe" => "shoes", - - "horse" => "horses", - "prize" => "prizes", - "edge" => "edges", - - "cow" => "kine" - } - - CamelToUnderscore = { - "Product" => "product", - "SpecialGuest" => "special_guest", - "ApplicationController" => "application_controller", - "Area51Controller" => "area51_controller" - } - - UnderscoreToLowerCamel = { - "product" => "product", - "special_guest" => "specialGuest", - "application_controller" => "applicationController", - "area51_controller" => "area51Controller" - } - - CamelToUnderscoreWithoutReverse = { - "HTMLTidy" => "html_tidy", - "HTMLTidyGenerator" => "html_tidy_generator", - "FreeBSD" => "free_bsd", - "HTML" => "html", - } - - CamelWithModuleToUnderscoreWithSlash = { - "Admin::Product" => "admin/product", - "Users::Commission::Department" => "users/commission/department", - "UsersSection::CommissionDepartment" => "users_section/commission_department", - } - - ClassNameToForeignKeyWithUnderscore = { - "Person" => "person_id", - "MyApplication::Billing::Account" => "account_id" - } - - ClassNameToForeignKeyWithoutUnderscore = { - "Person" => "personid", - "MyApplication::Billing::Account" => "accountid" - } - - ClassNameToTableName = { - "PrimarySpokesman" => "primary_spokesmen", - "NodeChild" => "node_children" - } - - UnderscoreToHuman = { - "employee_salary" => "Employee salary", - "employee_id" => "Employee", - "underground" => "Underground" - } - - MixtureToTitleCase = { - 'active_record' => 'Active Record', - 'ActiveRecord' => 'Active Record', - 'action web service' => 'Action Web Service', - 'Action Web Service' => 'Action Web Service', - 'Action web service' => 'Action Web Service', - 'actionwebservice' => 'Actionwebservice', - 'Actionwebservice' => 'Actionwebservice' - } - - OrdinalNumbers = { - "0" => "0th", - "1" => "1st", - "2" => "2nd", - "3" => "3rd", - "4" => "4th", - "5" => "5th", - "6" => "6th", - "7" => "7th", - "8" => "8th", - "9" => "9th", - "10" => "10th", - "11" => "11th", - "12" => "12th", - "13" => "13th", - "14" => "14th", - "20" => "20th", - "21" => "21st", - "22" => "22nd", - "23" => "23rd", - "24" => "24th", - "100" => "100th", - "101" => "101st", - "102" => "102nd", - "103" => "103rd", - "104" => "104th", - "110" => "110th", - "111" => "111th", - "112" => "112th", - "113" => "113th", - "1000" => "1000th", - "1001" => "1001st" - } - - UnderscoresToDashes = { - "street" => "street", - "street_address" => "street-address", - "person_street_address" => "person-street-address" - } - - Irregularities = { - 'person' => 'people', - 'man' => 'men', - 'child' => 'children', - 'sex' => 'sexes', - 'move' => 'moves', - } + include InflectorTestCases def test_pluralize_plurals assert_equal "plurals", Inflector.pluralize("plurals") diff --git a/activesupport/test/inflector_test_cases.rb b/activesupport/test/inflector_test_cases.rb new file mode 100644 index 0000000000..83fd4c8e56 --- /dev/null +++ b/activesupport/test/inflector_test_cases.rb @@ -0,0 +1,208 @@ +module InflectorTestCases + SingularToPlural = { + "search" => "searches", + "switch" => "switches", + "fix" => "fixes", + "box" => "boxes", + "process" => "processes", + "address" => "addresses", + "case" => "cases", + "stack" => "stacks", + "wish" => "wishes", + "fish" => "fish", + + "category" => "categories", + "query" => "queries", + "ability" => "abilities", + "agency" => "agencies", + "movie" => "movies", + + "archive" => "archives", + + "index" => "indices", + + "wife" => "wives", + "safe" => "saves", + "half" => "halves", + + "move" => "moves", + + "salesperson" => "salespeople", + "person" => "people", + + "spokesman" => "spokesmen", + "man" => "men", + "woman" => "women", + + "basis" => "bases", + "diagnosis" => "diagnoses", + "diagnosis_a" => "diagnosis_as", + + "datum" => "data", + "medium" => "media", + "analysis" => "analyses", + + "node_child" => "node_children", + "child" => "children", + + "experience" => "experiences", + "day" => "days", + + "comment" => "comments", + "foobar" => "foobars", + "newsletter" => "newsletters", + + "old_news" => "old_news", + "news" => "news", + + "series" => "series", + "species" => "species", + + "quiz" => "quizzes", + + "perspective" => "perspectives", + + "ox" => "oxen", + "photo" => "photos", + "buffalo" => "buffaloes", + "tomato" => "tomatoes", + "dwarf" => "dwarves", + "elf" => "elves", + "information" => "information", + "equipment" => "equipment", + "bus" => "buses", + "status" => "statuses", + "status_code" => "status_codes", + "mouse" => "mice", + + "louse" => "lice", + "house" => "houses", + "octopus" => "octopi", + "virus" => "viri", + "alias" => "aliases", + "portfolio" => "portfolios", + + "vertex" => "vertices", + "matrix" => "matrices", + "matrix_fu" => "matrix_fus", + + "axis" => "axes", + "testis" => "testes", + "crisis" => "crises", + + "rice" => "rice", + "shoe" => "shoes", + + "horse" => "horses", + "prize" => "prizes", + "edge" => "edges", + + "cow" => "kine" + } + + CamelToUnderscore = { + "Product" => "product", + "SpecialGuest" => "special_guest", + "ApplicationController" => "application_controller", + "Area51Controller" => "area51_controller" + } + + UnderscoreToLowerCamel = { + "product" => "product", + "special_guest" => "specialGuest", + "application_controller" => "applicationController", + "area51_controller" => "area51Controller" + } + + CamelToUnderscoreWithoutReverse = { + "HTMLTidy" => "html_tidy", + "HTMLTidyGenerator" => "html_tidy_generator", + "FreeBSD" => "free_bsd", + "HTML" => "html", + } + + CamelWithModuleToUnderscoreWithSlash = { + "Admin::Product" => "admin/product", + "Users::Commission::Department" => "users/commission/department", + "UsersSection::CommissionDepartment" => "users_section/commission_department", + } + + ClassNameToForeignKeyWithUnderscore = { + "Person" => "person_id", + "MyApplication::Billing::Account" => "account_id" + } + + ClassNameToForeignKeyWithoutUnderscore = { + "Person" => "personid", + "MyApplication::Billing::Account" => "accountid" + } + + ClassNameToTableName = { + "PrimarySpokesman" => "primary_spokesmen", + "NodeChild" => "node_children" + } + + UnderscoreToHuman = { + "employee_salary" => "Employee salary", + "employee_id" => "Employee", + "underground" => "Underground" + } + + MixtureToTitleCase = { + 'active_record' => 'Active Record', + 'ActiveRecord' => 'Active Record', + 'action web service' => 'Action Web Service', + 'Action Web Service' => 'Action Web Service', + 'Action web service' => 'Action Web Service', + 'actionwebservice' => 'Actionwebservice', + 'Actionwebservice' => 'Actionwebservice' + } + + OrdinalNumbers = { + "0" => "0th", + "1" => "1st", + "2" => "2nd", + "3" => "3rd", + "4" => "4th", + "5" => "5th", + "6" => "6th", + "7" => "7th", + "8" => "8th", + "9" => "9th", + "10" => "10th", + "11" => "11th", + "12" => "12th", + "13" => "13th", + "14" => "14th", + "20" => "20th", + "21" => "21st", + "22" => "22nd", + "23" => "23rd", + "24" => "24th", + "100" => "100th", + "101" => "101st", + "102" => "102nd", + "103" => "103rd", + "104" => "104th", + "110" => "110th", + "111" => "111th", + "112" => "112th", + "113" => "113th", + "1000" => "1000th", + "1001" => "1001st" + } + + UnderscoresToDashes = { + "street" => "street", + "street_address" => "street-address", + "person_street_address" => "person-street-address" + } + + Irregularities = { + 'person' => 'people', + 'man' => 'men', + 'child' => 'children', + 'sex' => 'sexes', + 'move' => 'moves', + } +end -- cgit v1.2.3