mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-10-31 10:37:24 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package storagetest
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"os"
 | |
| 	"path/filepath"
 | |
| 	"testing"
 | |
| 	"time"
 | |
| 
 | |
| 	"github.com/mholt/caddy/caddytls"
 | |
| )
 | |
| 
 | |
| // TestFileStorage tests the file storage set with the test harness in this
 | |
| // package.
 | |
| func TestFileStorage(t *testing.T) {
 | |
| 	emailCounter := 0
 | |
| 	storageTest := &StorageTest{
 | |
| 		Storage:  &caddytls.FileStorage{Path: "./testdata"}, // nameLocks isn't made here, but it's okay because the tests don't call TryLock or Unlock
 | |
| 		PostTest: func() { os.RemoveAll("./testdata") },
 | |
| 		AfterUserEmailStore: func(email string) error {
 | |
| 			// We need to change the dir mod time to show a
 | |
| 			// that certain dirs are newer.
 | |
| 			emailCounter++
 | |
| 			fp := filepath.Join("./testdata", "users", email)
 | |
| 
 | |
| 			// What we will do is subtract 10 days from today and
 | |
| 			// then add counter * seconds to make the later
 | |
| 			// counters newer. We accept that this isn't exactly
 | |
| 			// how the file storage works because it only changes
 | |
| 			// timestamps on *newly seen* users, but it achieves
 | |
| 			// the result that the harness expects.
 | |
| 			chTime := time.Now().AddDate(0, 0, -10).Add(time.Duration(emailCounter) * time.Second)
 | |
| 			if err := os.Chtimes(fp, chTime, chTime); err != nil {
 | |
| 				return fmt.Errorf("Unable to change file time for %v: %v", fp, err)
 | |
| 			}
 | |
| 			return nil
 | |
| 		},
 | |
| 	}
 | |
| 	storageTest.Test(t, false)
 | |
| }
 |