4
0

config_test.go 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827
  1. // Copyright 2018 Frédéric Guillot. All rights reserved.
  2. // Use of this source code is governed by the Apache 2.0
  3. // license that can be found in the LICENSE file.
  4. package config // import "miniflux.app/config"
  5. import (
  6. "os"
  7. "testing"
  8. )
  9. func TestGetBooleanValueWithUnsetVariable(t *testing.T) {
  10. os.Clearenv()
  11. if getBooleanValue("MY_TEST_VARIABLE") {
  12. t.Errorf(`Unset variables should returns false`)
  13. }
  14. }
  15. func TestGetBooleanValue(t *testing.T) {
  16. scenarios := map[string]bool{
  17. "": false,
  18. "1": true,
  19. "Yes": true,
  20. "yes": true,
  21. "True": true,
  22. "true": true,
  23. "on": true,
  24. "false": false,
  25. "off": false,
  26. "invalid": false,
  27. }
  28. for input, expected := range scenarios {
  29. os.Clearenv()
  30. os.Setenv("MY_TEST_VARIABLE", input)
  31. result := getBooleanValue("MY_TEST_VARIABLE")
  32. if result != expected {
  33. t.Errorf(`Unexpected result for %q, got %v instead of %v`, input, result, expected)
  34. }
  35. }
  36. }
  37. func TestGetStringValueWithUnsetVariable(t *testing.T) {
  38. os.Clearenv()
  39. if getStringValue("MY_TEST_VARIABLE", "defaultValue") != "defaultValue" {
  40. t.Errorf(`Unset variables should returns the default value`)
  41. }
  42. }
  43. func TestGetStringValue(t *testing.T) {
  44. os.Clearenv()
  45. os.Setenv("MY_TEST_VARIABLE", "test")
  46. if getStringValue("MY_TEST_VARIABLE", "defaultValue") != "test" {
  47. t.Errorf(`Defined variables should returns the specified value`)
  48. }
  49. }
  50. func TestGetIntValueWithUnsetVariable(t *testing.T) {
  51. os.Clearenv()
  52. if getIntValue("MY_TEST_VARIABLE", 42) != 42 {
  53. t.Errorf(`Unset variables should returns the default value`)
  54. }
  55. }
  56. func TestGetIntValueWithInvalidInput(t *testing.T) {
  57. os.Clearenv()
  58. os.Setenv("MY_TEST_VARIABLE", "invalid integer")
  59. if getIntValue("MY_TEST_VARIABLE", 42) != 42 {
  60. t.Errorf(`Invalid integer should returns the default value`)
  61. }
  62. }
  63. func TestGetIntValue(t *testing.T) {
  64. os.Clearenv()
  65. os.Setenv("MY_TEST_VARIABLE", "2018")
  66. if getIntValue("MY_TEST_VARIABLE", 42) != 2018 {
  67. t.Errorf(`Defined variables should returns the specified value`)
  68. }
  69. }
  70. func TestDebugModeOn(t *testing.T) {
  71. os.Clearenv()
  72. os.Setenv("DEBUG", "1")
  73. cfg := NewConfig()
  74. if !cfg.HasDebugMode() {
  75. t.Fatalf(`Unexpected debug mode value, got "%v"`, cfg.HasDebugMode())
  76. }
  77. }
  78. func TestDebugModeOff(t *testing.T) {
  79. os.Clearenv()
  80. cfg := NewConfig()
  81. if cfg.HasDebugMode() {
  82. t.Fatalf(`Unexpected debug mode value, got "%v"`, cfg.HasDebugMode())
  83. }
  84. }
  85. func TestCustomBaseURL(t *testing.T) {
  86. os.Clearenv()
  87. os.Setenv("BASE_URL", "http://example.org")
  88. cfg := NewConfig()
  89. if cfg.BaseURL() != "http://example.org" {
  90. t.Fatalf(`Unexpected base URL, got "%s"`, cfg.BaseURL())
  91. }
  92. if cfg.RootURL() != "http://example.org" {
  93. t.Fatalf(`Unexpected root URL, got "%s"`, cfg.RootURL())
  94. }
  95. if cfg.BasePath() != "" {
  96. t.Fatalf(`Unexpected base path, got "%s"`, cfg.BasePath())
  97. }
  98. }
  99. func TestCustomBaseURLWithTrailingSlash(t *testing.T) {
  100. os.Clearenv()
  101. os.Setenv("BASE_URL", "http://example.org/folder/")
  102. cfg := NewConfig()
  103. if cfg.BaseURL() != "http://example.org/folder" {
  104. t.Fatalf(`Unexpected base URL, got "%s"`, cfg.BaseURL())
  105. }
  106. if cfg.RootURL() != "http://example.org" {
  107. t.Fatalf(`Unexpected root URL, got "%s"`, cfg.RootURL())
  108. }
  109. if cfg.BasePath() != "/folder" {
  110. t.Fatalf(`Unexpected base path, got "%s"`, cfg.BasePath())
  111. }
  112. }
  113. func TestBaseURLWithoutScheme(t *testing.T) {
  114. os.Clearenv()
  115. os.Setenv("BASE_URL", "example.org/folder/")
  116. cfg := NewConfig()
  117. if cfg.BaseURL() != "http://localhost" {
  118. t.Fatalf(`Unexpected base URL, got "%s"`, cfg.BaseURL())
  119. }
  120. if cfg.RootURL() != "http://localhost" {
  121. t.Fatalf(`Unexpected root URL, got "%s"`, cfg.RootURL())
  122. }
  123. if cfg.BasePath() != "" {
  124. t.Fatalf(`Unexpected base path, got "%s"`, cfg.BasePath())
  125. }
  126. }
  127. func TestBaseURLWithInvalidScheme(t *testing.T) {
  128. os.Clearenv()
  129. os.Setenv("BASE_URL", "ftp://example.org/folder/")
  130. cfg := NewConfig()
  131. if cfg.BaseURL() != "http://localhost" {
  132. t.Fatalf(`Unexpected base URL, got "%s"`, cfg.BaseURL())
  133. }
  134. if cfg.RootURL() != "http://localhost" {
  135. t.Fatalf(`Unexpected root URL, got "%s"`, cfg.RootURL())
  136. }
  137. if cfg.BasePath() != "" {
  138. t.Fatalf(`Unexpected base path, got "%s"`, cfg.BasePath())
  139. }
  140. }
  141. func TestInvalidBaseURL(t *testing.T) {
  142. os.Clearenv()
  143. os.Setenv("BASE_URL", "http://example|org")
  144. cfg := NewConfig()
  145. if cfg.BaseURL() != defaultBaseURL {
  146. t.Fatalf(`Unexpected base URL, got "%s"`, cfg.BaseURL())
  147. }
  148. if cfg.RootURL() != defaultBaseURL {
  149. t.Fatalf(`Unexpected root URL, got "%s"`, cfg.RootURL())
  150. }
  151. if cfg.BasePath() != "" {
  152. t.Fatalf(`Unexpected base path, got "%s"`, cfg.BasePath())
  153. }
  154. }
  155. func TestDefaultBaseURL(t *testing.T) {
  156. os.Clearenv()
  157. cfg := NewConfig()
  158. if cfg.BaseURL() != defaultBaseURL {
  159. t.Fatalf(`Unexpected base URL, got "%s"`, cfg.BaseURL())
  160. }
  161. if cfg.RootURL() != defaultBaseURL {
  162. t.Fatalf(`Unexpected root URL, got "%s"`, cfg.RootURL())
  163. }
  164. if cfg.BasePath() != "" {
  165. t.Fatalf(`Unexpected base path, got "%s"`, cfg.BasePath())
  166. }
  167. }
  168. func TestDatabaseURL(t *testing.T) {
  169. os.Clearenv()
  170. os.Setenv("DATABASE_URL", "foobar")
  171. cfg := NewConfig()
  172. expected := "foobar"
  173. result := cfg.DatabaseURL()
  174. if result != expected {
  175. t.Fatalf(`Unexpected DATABASE_URL value, got %q instead of %q`, result, expected)
  176. }
  177. }
  178. func TestDefaultDatabaseURLValue(t *testing.T) {
  179. os.Clearenv()
  180. cfg := NewConfig()
  181. result := cfg.DatabaseURL()
  182. expected := defaultDatabaseURL
  183. if result != expected {
  184. t.Fatalf(`Unexpected DATABASE_URL value, got %q instead of %q`, result, expected)
  185. }
  186. }
  187. func TestDefaultDatabaseMaxConnsValue(t *testing.T) {
  188. os.Clearenv()
  189. cfg := NewConfig()
  190. expected := defaultDatabaseMaxConns
  191. result := cfg.DatabaseMaxConns()
  192. if result != expected {
  193. t.Fatalf(`Unexpected DATABASE_MAX_CONNS value, got %v instead of %v`, result, expected)
  194. }
  195. }
  196. func TestDeatabaseMaxConns(t *testing.T) {
  197. os.Clearenv()
  198. os.Setenv("DATABASE_MAX_CONNS", "42")
  199. cfg := NewConfig()
  200. expected := 42
  201. result := cfg.DatabaseMaxConns()
  202. if result != expected {
  203. t.Fatalf(`Unexpected DATABASE_MAX_CONNS value, got %v instead of %v`, result, expected)
  204. }
  205. }
  206. func TestDefaultDatabaseMinConnsValue(t *testing.T) {
  207. os.Clearenv()
  208. cfg := NewConfig()
  209. expected := defaultDatabaseMinConns
  210. result := cfg.DatabaseMinConns()
  211. if result != expected {
  212. t.Fatalf(`Unexpected DATABASE_MIN_CONNS value, got %v instead of %v`, result, expected)
  213. }
  214. }
  215. func TestDatabaseMinConns(t *testing.T) {
  216. os.Clearenv()
  217. os.Setenv("DATABASE_MIN_CONNS", "42")
  218. cfg := NewConfig()
  219. expected := 42
  220. result := cfg.DatabaseMinConns()
  221. if result != expected {
  222. t.Fatalf(`Unexpected DATABASE_MIN_CONNS value, got %v instead of %v`, result, expected)
  223. }
  224. }
  225. func TestListenAddr(t *testing.T) {
  226. os.Clearenv()
  227. os.Setenv("LISTEN_ADDR", "foobar")
  228. cfg := NewConfig()
  229. expected := "foobar"
  230. result := cfg.ListenAddr()
  231. if result != expected {
  232. t.Fatalf(`Unexpected LISTEN_ADDR value, got %q instead of %q`, result, expected)
  233. }
  234. }
  235. func TestListenAddrWithPortDefined(t *testing.T) {
  236. os.Clearenv()
  237. os.Setenv("PORT", "3000")
  238. os.Setenv("LISTEN_ADDR", "foobar")
  239. cfg := NewConfig()
  240. expected := ":3000"
  241. result := cfg.ListenAddr()
  242. if result != expected {
  243. t.Fatalf(`Unexpected LISTEN_ADDR value, got %q instead of %q`, result, expected)
  244. }
  245. }
  246. func TestDefaultListenAddrValue(t *testing.T) {
  247. os.Clearenv()
  248. cfg := NewConfig()
  249. result := cfg.ListenAddr()
  250. expected := defaultListenAddr
  251. if result != expected {
  252. t.Fatalf(`Unexpected LISTEN_ADDR value, got %q instead of %q`, result, expected)
  253. }
  254. }
  255. func TestCertFile(t *testing.T) {
  256. os.Clearenv()
  257. os.Setenv("CERT_FILE", "foobar")
  258. cfg := NewConfig()
  259. expected := "foobar"
  260. result := cfg.CertFile()
  261. if result != expected {
  262. t.Fatalf(`Unexpected CERT_FILE value, got %q instead of %q`, result, expected)
  263. }
  264. }
  265. func TestDefaultCertFileValue(t *testing.T) {
  266. os.Clearenv()
  267. cfg := NewConfig()
  268. result := cfg.CertFile()
  269. expected := defaultCertFile
  270. if result != expected {
  271. t.Fatalf(`Unexpected CERT_FILE value, got %q instead of %q`, result, expected)
  272. }
  273. }
  274. func TestKeyFile(t *testing.T) {
  275. os.Clearenv()
  276. os.Setenv("KEY_FILE", "foobar")
  277. cfg := NewConfig()
  278. expected := "foobar"
  279. result := cfg.KeyFile()
  280. if result != expected {
  281. t.Fatalf(`Unexpected KEY_FILE value, got %q instead of %q`, result, expected)
  282. }
  283. }
  284. func TestDefaultKeyFileValue(t *testing.T) {
  285. os.Clearenv()
  286. cfg := NewConfig()
  287. result := cfg.KeyFile()
  288. expected := defaultKeyFile
  289. if result != expected {
  290. t.Fatalf(`Unexpected KEY_FILE value, got %q instead of %q`, result, expected)
  291. }
  292. }
  293. func TestCertDomain(t *testing.T) {
  294. os.Clearenv()
  295. os.Setenv("CERT_DOMAIN", "example.org")
  296. cfg := NewConfig()
  297. expected := "example.org"
  298. result := cfg.CertDomain()
  299. if result != expected {
  300. t.Fatalf(`Unexpected CERT_DOMAIN value, got %q instead of %q`, result, expected)
  301. }
  302. }
  303. func TestDefaultCertDomainValue(t *testing.T) {
  304. os.Clearenv()
  305. cfg := NewConfig()
  306. result := cfg.CertDomain()
  307. expected := defaultCertDomain
  308. if result != expected {
  309. t.Fatalf(`Unexpected CERT_DOMAIN value, got %q instead of %q`, result, expected)
  310. }
  311. }
  312. func TestCertCache(t *testing.T) {
  313. os.Clearenv()
  314. os.Setenv("CERT_CACHE", "foobar")
  315. cfg := NewConfig()
  316. expected := "foobar"
  317. result := cfg.CertCache()
  318. if result != expected {
  319. t.Fatalf(`Unexpected CERT_CACHE value, got %q instead of %q`, result, expected)
  320. }
  321. }
  322. func TestDefaultCertCacheValue(t *testing.T) {
  323. os.Clearenv()
  324. cfg := NewConfig()
  325. result := cfg.CertCache()
  326. expected := defaultCertCache
  327. if result != expected {
  328. t.Fatalf(`Unexpected CERT_CACHE value, got %q instead of %q`, result, expected)
  329. }
  330. }
  331. func TestDefaultCleanupFrequencyValue(t *testing.T) {
  332. os.Clearenv()
  333. cfg := NewConfig()
  334. expected := defaultCleanupFrequency
  335. result := cfg.CleanupFrequency()
  336. if result != expected {
  337. t.Fatalf(`Unexpected CLEANUP_FREQUENCY value, got %v instead of %v`, result, expected)
  338. }
  339. }
  340. func TestCleanupFrequency(t *testing.T) {
  341. os.Clearenv()
  342. os.Setenv("CLEANUP_FREQUENCY", "42")
  343. cfg := NewConfig()
  344. expected := 42
  345. result := cfg.CleanupFrequency()
  346. if result != expected {
  347. t.Fatalf(`Unexpected CLEANUP_FREQUENCY value, got %v instead of %v`, result, expected)
  348. }
  349. }
  350. func TestDefaultWorkerPoolSizeValue(t *testing.T) {
  351. os.Clearenv()
  352. cfg := NewConfig()
  353. expected := defaultWorkerPoolSize
  354. result := cfg.WorkerPoolSize()
  355. if result != expected {
  356. t.Fatalf(`Unexpected WORKER_POOL_SIZE value, got %v instead of %v`, result, expected)
  357. }
  358. }
  359. func TestWorkerPoolSize(t *testing.T) {
  360. os.Clearenv()
  361. os.Setenv("WORKER_POOL_SIZE", "42")
  362. cfg := NewConfig()
  363. expected := 42
  364. result := cfg.WorkerPoolSize()
  365. if result != expected {
  366. t.Fatalf(`Unexpected WORKER_POOL_SIZE value, got %v instead of %v`, result, expected)
  367. }
  368. }
  369. func TestDefautPollingFrequencyValue(t *testing.T) {
  370. os.Clearenv()
  371. cfg := NewConfig()
  372. expected := defaultPollingFrequency
  373. result := cfg.PollingFrequency()
  374. if result != expected {
  375. t.Fatalf(`Unexpected POLLING_FREQUENCY value, got %v instead of %v`, result, expected)
  376. }
  377. }
  378. func TestPollingFrequency(t *testing.T) {
  379. os.Clearenv()
  380. os.Setenv("POLLING_FREQUENCY", "42")
  381. cfg := NewConfig()
  382. expected := 42
  383. result := cfg.PollingFrequency()
  384. if result != expected {
  385. t.Fatalf(`Unexpected POLLING_FREQUENCY value, got %v instead of %v`, result, expected)
  386. }
  387. }
  388. func TestDefaultBatchSizeValue(t *testing.T) {
  389. os.Clearenv()
  390. cfg := NewConfig()
  391. expected := defaultBatchSize
  392. result := cfg.BatchSize()
  393. if result != expected {
  394. t.Fatalf(`Unexpected BATCH_SIZE value, got %v instead of %v`, result, expected)
  395. }
  396. }
  397. func TestBatchSize(t *testing.T) {
  398. os.Clearenv()
  399. os.Setenv("BATCH_SIZE", "42")
  400. cfg := NewConfig()
  401. expected := 42
  402. result := cfg.BatchSize()
  403. if result != expected {
  404. t.Fatalf(`Unexpected BATCH_SIZE value, got %v instead of %v`, result, expected)
  405. }
  406. }
  407. func TestOAuth2UserCreationWhenUnset(t *testing.T) {
  408. os.Clearenv()
  409. cfg := NewConfig()
  410. expected := false
  411. result := cfg.IsOAuth2UserCreationAllowed()
  412. if result != expected {
  413. t.Fatalf(`Unexpected OAUTH2_USER_CREATION value, got %v instead of %v`, result, expected)
  414. }
  415. }
  416. func TestOAuth2UserCreationAdmin(t *testing.T) {
  417. os.Clearenv()
  418. os.Setenv("OAUTH2_USER_CREATION", "1")
  419. cfg := NewConfig()
  420. expected := true
  421. result := cfg.IsOAuth2UserCreationAllowed()
  422. if result != expected {
  423. t.Fatalf(`Unexpected OAUTH2_USER_CREATION value, got %v instead of %v`, result, expected)
  424. }
  425. }
  426. func TestOAuth2ClientID(t *testing.T) {
  427. os.Clearenv()
  428. os.Setenv("OAUTH2_CLIENT_ID", "foobar")
  429. cfg := NewConfig()
  430. expected := "foobar"
  431. result := cfg.OAuth2ClientID()
  432. if result != expected {
  433. t.Fatalf(`Unexpected OAUTH2_CLIENT_ID value, got %q instead of %q`, result, expected)
  434. }
  435. }
  436. func TestDefaultOAuth2ClientIDValue(t *testing.T) {
  437. os.Clearenv()
  438. cfg := NewConfig()
  439. result := cfg.OAuth2ClientID()
  440. expected := defaultOAuth2ClientID
  441. if result != expected {
  442. t.Fatalf(`Unexpected OAUTH2_CLIENT_ID value, got %q instead of %q`, result, expected)
  443. }
  444. }
  445. func TestOAuth2ClientSecret(t *testing.T) {
  446. os.Clearenv()
  447. os.Setenv("OAUTH2_CLIENT_SECRET", "secret")
  448. cfg := NewConfig()
  449. expected := "secret"
  450. result := cfg.OAuth2ClientSecret()
  451. if result != expected {
  452. t.Fatalf(`Unexpected OAUTH2_CLIENT_SECRET value, got %q instead of %q`, result, expected)
  453. }
  454. }
  455. func TestDefaultOAuth2ClientSecretValue(t *testing.T) {
  456. os.Clearenv()
  457. cfg := NewConfig()
  458. result := cfg.OAuth2ClientSecret()
  459. expected := defaultOAuth2ClientSecret
  460. if result != expected {
  461. t.Fatalf(`Unexpected OAUTH2_CLIENT_SECRET value, got %q instead of %q`, result, expected)
  462. }
  463. }
  464. func TestOAuth2RedirectURL(t *testing.T) {
  465. os.Clearenv()
  466. os.Setenv("OAUTH2_REDIRECT_URL", "http://example.org")
  467. cfg := NewConfig()
  468. expected := "http://example.org"
  469. result := cfg.OAuth2RedirectURL()
  470. if result != expected {
  471. t.Fatalf(`Unexpected OAUTH2_REDIRECT_URL value, got %q instead of %q`, result, expected)
  472. }
  473. }
  474. func TestDefaultOAuth2RedirectURLValue(t *testing.T) {
  475. os.Clearenv()
  476. cfg := NewConfig()
  477. result := cfg.OAuth2RedirectURL()
  478. expected := defaultOAuth2RedirectURL
  479. if result != expected {
  480. t.Fatalf(`Unexpected OAUTH2_REDIRECT_URL value, got %q instead of %q`, result, expected)
  481. }
  482. }
  483. func TestOAuth2Provider(t *testing.T) {
  484. os.Clearenv()
  485. os.Setenv("OAUTH2_PROVIDER", "google")
  486. cfg := NewConfig()
  487. expected := "google"
  488. result := cfg.OAuth2Provider()
  489. if result != expected {
  490. t.Fatalf(`Unexpected OAUTH2_PROVIDER value, got %q instead of %q`, result, expected)
  491. }
  492. }
  493. func TestDefaultOAuth2ProviderValue(t *testing.T) {
  494. os.Clearenv()
  495. cfg := NewConfig()
  496. result := cfg.OAuth2Provider()
  497. expected := defaultOAuth2Provider
  498. if result != expected {
  499. t.Fatalf(`Unexpected OAUTH2_PROVIDER value, got %q instead of %q`, result, expected)
  500. }
  501. }
  502. func TestHSTSWhenUnset(t *testing.T) {
  503. os.Clearenv()
  504. cfg := NewConfig()
  505. expected := true
  506. result := cfg.HasHSTS()
  507. if result != expected {
  508. t.Fatalf(`Unexpected DISABLE_HSTS value, got %v instead of %v`, result, expected)
  509. }
  510. }
  511. func TestHSTS(t *testing.T) {
  512. os.Clearenv()
  513. os.Setenv("DISABLE_HSTS", "1")
  514. cfg := NewConfig()
  515. expected := false
  516. result := cfg.HasHSTS()
  517. if result != expected {
  518. t.Fatalf(`Unexpected DISABLE_HSTS value, got %v instead of %v`, result, expected)
  519. }
  520. }
  521. func TestDisableHTTPServiceWhenUnset(t *testing.T) {
  522. os.Clearenv()
  523. cfg := NewConfig()
  524. expected := true
  525. result := cfg.HasHTTPService()
  526. if result != expected {
  527. t.Fatalf(`Unexpected DISABLE_HTTP_SERVICE value, got %v instead of %v`, result, expected)
  528. }
  529. }
  530. func TestDisableHTTPService(t *testing.T) {
  531. os.Clearenv()
  532. os.Setenv("DISABLE_HTTP_SERVICE", "1")
  533. cfg := NewConfig()
  534. expected := false
  535. result := cfg.HasHTTPService()
  536. if result != expected {
  537. t.Fatalf(`Unexpected DISABLE_HTTP_SERVICE value, got %v instead of %v`, result, expected)
  538. }
  539. }
  540. func TestDisableSchedulerServiceWhenUnset(t *testing.T) {
  541. os.Clearenv()
  542. cfg := NewConfig()
  543. expected := true
  544. result := cfg.HasSchedulerService()
  545. if result != expected {
  546. t.Fatalf(`Unexpected DISABLE_SCHEDULER_SERVICE value, got %v instead of %v`, result, expected)
  547. }
  548. }
  549. func TestDisableSchedulerService(t *testing.T) {
  550. os.Clearenv()
  551. os.Setenv("DISABLE_SCHEDULER_SERVICE", "1")
  552. cfg := NewConfig()
  553. expected := false
  554. result := cfg.HasSchedulerService()
  555. if result != expected {
  556. t.Fatalf(`Unexpected DISABLE_SCHEDULER_SERVICE value, got %v instead of %v`, result, expected)
  557. }
  558. }
  559. func TestRunMigrationsWhenUnset(t *testing.T) {
  560. os.Clearenv()
  561. cfg := NewConfig()
  562. expected := false
  563. result := cfg.RunMigrations()
  564. if result != expected {
  565. t.Fatalf(`Unexpected RUN_MIGRATIONS value, got %v instead of %v`, result, expected)
  566. }
  567. }
  568. func TestRunMigrations(t *testing.T) {
  569. os.Clearenv()
  570. os.Setenv("RUN_MIGRATIONS", "yes")
  571. cfg := NewConfig()
  572. expected := true
  573. result := cfg.RunMigrations()
  574. if result != expected {
  575. t.Fatalf(`Unexpected RUN_MIGRATIONS value, got %v instead of %v`, result, expected)
  576. }
  577. }
  578. func TestCreateAdminWhenUnset(t *testing.T) {
  579. os.Clearenv()
  580. cfg := NewConfig()
  581. expected := false
  582. result := cfg.CreateAdmin()
  583. if result != expected {
  584. t.Fatalf(`Unexpected CREATE_ADMIN value, got %v instead of %v`, result, expected)
  585. }
  586. }
  587. func TestCreateAdmin(t *testing.T) {
  588. os.Clearenv()
  589. os.Setenv("CREATE_ADMIN", "true")
  590. cfg := NewConfig()
  591. expected := true
  592. result := cfg.CreateAdmin()
  593. if result != expected {
  594. t.Fatalf(`Unexpected CREATE_ADMIN value, got %v instead of %v`, result, expected)
  595. }
  596. }
  597. func TestPocketConsumerKeyFromEnvVariable(t *testing.T) {
  598. os.Clearenv()
  599. os.Setenv("POCKET_CONSUMER_KEY", "something")
  600. cfg := NewConfig()
  601. expected := "something"
  602. result := cfg.PocketConsumerKey("default")
  603. if result != expected {
  604. t.Fatalf(`Unexpected POCKET_CONSUMER_KEY value, got %q instead of %q`, result, expected)
  605. }
  606. }
  607. func TestPocketConsumerKeyFromUserPrefs(t *testing.T) {
  608. os.Clearenv()
  609. cfg := NewConfig()
  610. expected := "default"
  611. result := cfg.PocketConsumerKey("default")
  612. if result != expected {
  613. t.Fatalf(`Unexpected POCKET_CONSUMER_KEY value, got %q instead of %q`, result, expected)
  614. }
  615. }
  616. func TestProxyImages(t *testing.T) {
  617. os.Clearenv()
  618. os.Setenv("PROXY_IMAGES", "all")
  619. cfg := NewConfig()
  620. expected := "all"
  621. result := cfg.ProxyImages()
  622. if result != expected {
  623. t.Fatalf(`Unexpected PROXY_IMAGES value, got %q instead of %q`, result, expected)
  624. }
  625. }
  626. func TestDefaultProxyImagesValue(t *testing.T) {
  627. os.Clearenv()
  628. cfg := NewConfig()
  629. result := cfg.ProxyImages()
  630. expected := defaultProxyImages
  631. if result != expected {
  632. t.Fatalf(`Unexpected PROXY_IMAGES value, got %q instead of %q`, result, expected)
  633. }
  634. }
  635. func TestHTTPSOff(t *testing.T) {
  636. os.Clearenv()
  637. cfg := NewConfig()
  638. if cfg.IsHTTPS {
  639. t.Fatalf(`Unexpected HTTPS value, got "%v"`, cfg.IsHTTPS)
  640. }
  641. }
  642. func TestHTTPSOn(t *testing.T) {
  643. os.Clearenv()
  644. os.Setenv("HTTPS", "on")
  645. cfg := NewConfig()
  646. if !cfg.IsHTTPS {
  647. t.Fatalf(`Unexpected HTTPS value, got "%v"`, cfg.IsHTTPS)
  648. }
  649. }