Home | History | Annotate | Download | only in time
      1 // Copyright 2014 The Go Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style
      3 // license that can be found in the LICENSE file.
      4 
      5 package time_test
      6 
      7 import (
      8 	"testing"
      9 	"time"
     10 )
     11 
     12 func TestVersion3(t *testing.T) {
     13 	time.ForceZipFileForTesting(true)
     14 	defer time.ForceZipFileForTesting(false)
     15 	_, err := time.LoadLocation("Asia/Jerusalem")
     16 	if err != nil {
     17 		t.Fatal(err)
     18 	}
     19 }
     20 
     21 // Test that we get the correct results for times before the first
     22 // transition time. To do this we explicitly check early dates in a
     23 // couple of specific timezones.
     24 func TestFirstZone(t *testing.T) {
     25 	time.ForceZipFileForTesting(true)
     26 	defer time.ForceZipFileForTesting(false)
     27 
     28 	const format = "Mon, 02 Jan 2006 15:04:05 -0700 (MST)"
     29 	var tests = []struct {
     30 		zone  string
     31 		unix  int64
     32 		want1 string
     33 		want2 string
     34 	}{
     35 		{
     36 			"PST8PDT",
     37 			-1633269601,
     38 			"Sun, 31 Mar 1918 01:59:59 -0800 (PST)",
     39 			"Sun, 31 Mar 1918 03:00:00 -0700 (PDT)",
     40 		},
     41 		{
     42 			"Pacific/Fakaofo",
     43 			1325242799,
     44 			"Thu, 29 Dec 2011 23:59:59 -1100 (TKT)",
     45 			"Sat, 31 Dec 2011 00:00:00 +1300 (TKT)",
     46 		},
     47 	}
     48 
     49 	for _, test := range tests {
     50 		z, err := time.LoadLocation(test.zone)
     51 		if err != nil {
     52 			t.Fatal(err)
     53 		}
     54 		s := time.Unix(test.unix, 0).In(z).Format(format)
     55 		if s != test.want1 {
     56 			t.Errorf("for %s %d got %q want %q", test.zone, test.unix, s, test.want1)
     57 		}
     58 		s = time.Unix(test.unix+1, 0).In(z).Format(format)
     59 		if s != test.want2 {
     60 			t.Errorf("for %s %d got %q want %q", test.zone, test.unix, s, test.want2)
     61 		}
     62 	}
     63 }
     64 
     65 func TestLocationNames(t *testing.T) {
     66 	if time.Local.String() != "Local" {
     67 		t.Errorf(`invalid Local location name: got %q want "Local"`, time.Local)
     68 	}
     69 	if time.UTC.String() != "UTC" {
     70 		t.Errorf(`invalid UTC location name: got %q want "UTC"`, time.UTC)
     71 	}
     72 }
     73