aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/template/number_helper_test.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2006-10-22 23:47:18 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2006-10-22 23:47:18 +0000
commit1c71a5d25fff323eef25ca3f744151e59c1ee86b (patch)
tree3fe900fd905c834841d494dd3b2b1b0fb7cfbedf /actionpack/test/template/number_helper_test.rb
parentafd288cf8141eca321061cb00879f52108d68013 (diff)
downloadrails-1c71a5d25fff323eef25ca3f744151e59c1ee86b.tar.gz
rails-1c71a5d25fff323eef25ca3f744151e59c1ee86b.tar.bz2
rails-1c71a5d25fff323eef25ca3f744151e59c1ee86b.zip
Upgraded NumberHelper with number_to_phone support international formats to comply with ITU E.123 by supporting area codes with less than 3 digits, added precision argument to number_to_human_size (defaults to 1) (closes #6421) [BobSilva]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5336 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/test/template/number_helper_test.rb')
-rw-r--r--actionpack/test/template/number_helper_test.rb84
1 files changed, 55 insertions, 29 deletions
diff --git a/actionpack/test/template/number_helper_test.rb b/actionpack/test/template/number_helper_test.rb
index 53e693382a..df2c9183fb 100644
--- a/actionpack/test/template/number_helper_test.rb
+++ b/actionpack/test/template/number_helper_test.rb
@@ -1,18 +1,22 @@
-require 'test/unit'
+require File.dirname(__FILE__) + '/../abstract_unit'
require File.dirname(__FILE__) + '/../../lib/action_view/helpers/number_helper'
-require File.dirname(__FILE__) + '/../../../activesupport/lib/active_support/core_ext/hash' # for stringify_keys
-require File.dirname(__FILE__) + '/../../../activesupport/lib/active_support/core_ext/numeric' # for human_size
class NumberHelperTest < Test::Unit::TestCase
include ActionView::Helpers::NumberHelper
- include ActiveSupport::CoreExtensions::Hash
def test_number_to_phone
- assert_equal("123-555-1234", number_to_phone(1235551234))
- assert_equal("(123) 555-1234", number_to_phone(1235551234, {:area_code => true}))
- assert_equal("123 555 1234", number_to_phone(1235551234, {:delimiter => " "}))
- assert_equal("(123) 555-1234 x 555", number_to_phone(1235551234, {:area_code => true, :extension => 555}))
- assert_equal("123-555-1234", number_to_phone(1235551234, :extension => " "))
+ assert_equal("800-555-1212", number_to_phone(8005551212))
+ assert_equal("(800) 555-1212", number_to_phone(8005551212, {:area_code => true}))
+ assert_equal("800 555 1212", number_to_phone(8005551212, {:delimiter => " "}))
+ assert_equal("(800) 555-1212 x 123", number_to_phone(8005551212, {:area_code => true, :extension => 123}))
+ assert_equal("800-555-1212", number_to_phone(8005551212, :extension => " "))
+ assert_equal("800-555-1212", number_to_phone("8005551212"))
+ assert_equal("+1-800-555-1212", number_to_phone(8005551212, :country_code => 1))
+ assert_equal("+18005551212", number_to_phone(8005551212, :country_code => 1, :delimiter => ''))
+ assert_equal("22-555-1212", number_to_phone(225551212))
+ assert_equal("+45-22-555-1212", number_to_phone(225551212, :country_code => 45))
+ assert_equal("x", number_to_phone("x"))
+ assert_nil number_to_phone(nil)
end
def test_number_to_currency
@@ -21,17 +25,22 @@ class NumberHelperTest < Test::Unit::TestCase
assert_equal("$1,234,567,890", number_to_currency(1234567890.50, {:precision => 0}))
assert_equal("$1,234,567,890.5", number_to_currency(1234567890.50, {:precision => 1}))
assert_equal("&pound;1234567890,50", number_to_currency(1234567890.50, {:unit => "&pound;", :separator => ",", :delimiter => ""}))
+ assert_equal("$1,234,567,890.50", number_to_currency("1234567890.50"))
+ assert_equal("$x.", number_to_currency("x"))
+ assert_nil number_to_currency(nil)
end
def test_number_to_percentage
assert_equal("100.000%", number_to_percentage(100))
assert_equal("100%", number_to_percentage(100, {:precision => 0}))
assert_equal("302.06%", number_to_percentage(302.0574, {:precision => 2}))
+ assert_equal("100.000%", number_to_percentage("100"))
+ assert_equal("x%", number_to_percentage("x"))
+ assert_nil number_to_percentage(nil)
end
def test_number_with_delimiter
assert_equal("12,345,678", number_with_delimiter(12345678))
- assert_equal(nil, number_with_delimiter(nil))
assert_equal("0", number_with_delimiter(0))
assert_equal("123", number_with_delimiter(123))
assert_equal("123,456", number_with_delimiter(123456))
@@ -40,27 +49,44 @@ class NumberHelperTest < Test::Unit::TestCase
assert_equal("123,456.78901", number_with_delimiter(123456.78901))
assert_equal("123,456,789.78901", number_with_delimiter(123456789.78901))
assert_equal("0.78901", number_with_delimiter(0.78901))
+ assert_equal("123,456.78", number_with_delimiter("123456.78"))
+ assert_equal("x", number_with_delimiter("x"))
+ assert_nil number_with_delimiter(nil)
end
-
- def test_number_to_human_size
- assert_equal '0 Bytes', human_size(0)
- assert_equal '1 Byte', human_size(1)
- assert_equal '3 Bytes', human_size(3.14159265)
- assert_equal '123 Bytes', human_size(123.0)
- assert_equal '123 Bytes', human_size(123)
- assert_equal '1.2 KB', human_size(1234)
- assert_equal '12.1 KB', human_size(12345)
- assert_equal '1.2 MB', human_size(1234567)
- assert_equal '1.1 GB', human_size(1234567890)
- assert_equal '1.1 TB', human_size(1234567890123)
- assert_equal '444 KB', human_size(444.kilobytes)
- assert_equal '1023 MB', human_size(1023.megabytes)
- assert_equal '3 TB', human_size(3.terabytes)
- assert_nil human_size('x')
- assert_nil human_size(nil)
- end
-
+
def test_number_with_precision
assert_equal("111.235", number_with_precision(111.2346))
+ assert_equal("111.23", number_with_precision(111.2346, 2))
+ assert_equal("111.00", number_with_precision(111, 2))
+ assert_equal("111.235", number_with_precision("111.2346"))
+ assert_equal("x", number_with_precision("x"))
+ assert_nil number_with_precision(nil)
+ end
+
+ def test_number_to_human_size
+ assert_equal '0 Bytes', number_to_human_size(0)
+ assert_equal '1 Byte', number_to_human_size(1)
+ assert_equal '3 Bytes', number_to_human_size(3.14159265)
+ assert_equal '123 Bytes', number_to_human_size(123.0)
+ assert_equal '123 Bytes', number_to_human_size(123)
+ assert_equal '1.2 KB', number_to_human_size(1234)
+ assert_equal '12.1 KB', number_to_human_size(12345)
+ assert_equal '1.2 MB', number_to_human_size(1234567)
+ assert_equal '1.1 GB', number_to_human_size(1234567890)
+ assert_equal '1.1 TB', number_to_human_size(1234567890123)
+ assert_equal '444 KB', number_to_human_size(444.kilobytes)
+ assert_equal '1023 MB', number_to_human_size(1023.megabytes)
+ assert_equal '3 TB', number_to_human_size(3.terabytes)
+ assert_equal '1.18 MB', number_to_human_size(1234567, 2)
+ assert_equal '3 Bytes', number_to_human_size(3.14159265, 4)
+ assert_equal("123 Bytes", number_to_human_size("123"))
+ assert_nil number_to_human_size('x')
+ assert_nil number_to_human_size(nil)
+ end
+
+ def test_human_size_alias_is_deprecated
+ assert_deprecated 'human_size' do
+ assert_equal '0 Bytes', human_size(0)
+ end
end
end