config_test.go 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416
  1. // Copyright 2019 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. "io/ioutil"
  7. "os"
  8. "testing"
  9. )
  10. func TestDebugModeOn(t *testing.T) {
  11. os.Clearenv()
  12. os.Setenv("DEBUG", "1")
  13. parser := NewParser()
  14. opts, err := parser.ParseEnvironmentVariables()
  15. if err != nil {
  16. t.Fatalf(`Parsing failure: %v`, err)
  17. }
  18. if !opts.HasDebugMode() {
  19. t.Fatalf(`Unexpected debug mode value, got "%v"`, opts.HasDebugMode())
  20. }
  21. }
  22. func TestDebugModeOff(t *testing.T) {
  23. os.Clearenv()
  24. parser := NewParser()
  25. opts, err := parser.ParseEnvironmentVariables()
  26. if err != nil {
  27. t.Fatalf(`Parsing failure: %v`, err)
  28. }
  29. if opts.HasDebugMode() {
  30. t.Fatalf(`Unexpected debug mode value, got "%v"`, opts.HasDebugMode())
  31. }
  32. }
  33. func TestCustomBaseURL(t *testing.T) {
  34. os.Clearenv()
  35. os.Setenv("BASE_URL", "http://example.org")
  36. parser := NewParser()
  37. opts, err := parser.ParseEnvironmentVariables()
  38. if err != nil {
  39. t.Fatalf(`Parsing failure: %v`, err)
  40. }
  41. if opts.BaseURL() != "http://example.org" {
  42. t.Fatalf(`Unexpected base URL, got "%s"`, opts.BaseURL())
  43. }
  44. if opts.RootURL() != "http://example.org" {
  45. t.Fatalf(`Unexpected root URL, got "%s"`, opts.RootURL())
  46. }
  47. if opts.BasePath() != "" {
  48. t.Fatalf(`Unexpected base path, got "%s"`, opts.BasePath())
  49. }
  50. }
  51. func TestCustomBaseURLWithTrailingSlash(t *testing.T) {
  52. os.Clearenv()
  53. os.Setenv("BASE_URL", "http://example.org/folder/")
  54. parser := NewParser()
  55. opts, err := parser.ParseEnvironmentVariables()
  56. if err != nil {
  57. t.Fatalf(`Parsing failure: %v`, err)
  58. }
  59. if opts.BaseURL() != "http://example.org/folder" {
  60. t.Fatalf(`Unexpected base URL, got "%s"`, opts.BaseURL())
  61. }
  62. if opts.RootURL() != "http://example.org" {
  63. t.Fatalf(`Unexpected root URL, got "%s"`, opts.RootURL())
  64. }
  65. if opts.BasePath() != "/folder" {
  66. t.Fatalf(`Unexpected base path, got "%s"`, opts.BasePath())
  67. }
  68. }
  69. func TestBaseURLWithoutScheme(t *testing.T) {
  70. os.Clearenv()
  71. os.Setenv("BASE_URL", "example.org/folder/")
  72. _, err := NewParser().ParseEnvironmentVariables()
  73. if err == nil {
  74. t.Fatalf(`Parsing must fail`)
  75. }
  76. }
  77. func TestBaseURLWithInvalidScheme(t *testing.T) {
  78. os.Clearenv()
  79. os.Setenv("BASE_URL", "ftp://example.org/folder/")
  80. _, err := NewParser().ParseEnvironmentVariables()
  81. if err == nil {
  82. t.Fatalf(`Parsing must fail`)
  83. }
  84. }
  85. func TestInvalidBaseURL(t *testing.T) {
  86. os.Clearenv()
  87. os.Setenv("BASE_URL", "http://example|org")
  88. _, err := NewParser().ParseEnvironmentVariables()
  89. if err == nil {
  90. t.Fatalf(`Parsing must fail`)
  91. }
  92. }
  93. func TestDefaultBaseURL(t *testing.T) {
  94. os.Clearenv()
  95. parser := NewParser()
  96. opts, err := parser.ParseEnvironmentVariables()
  97. if err != nil {
  98. t.Fatalf(`Parsing failure: %v`, err)
  99. }
  100. if opts.BaseURL() != defaultBaseURL {
  101. t.Fatalf(`Unexpected base URL, got "%s"`, opts.BaseURL())
  102. }
  103. if opts.RootURL() != defaultBaseURL {
  104. t.Fatalf(`Unexpected root URL, got "%s"`, opts.RootURL())
  105. }
  106. if opts.BasePath() != "" {
  107. t.Fatalf(`Unexpected base path, got "%s"`, opts.BasePath())
  108. }
  109. }
  110. func TestDatabaseURL(t *testing.T) {
  111. os.Clearenv()
  112. os.Setenv("DATABASE_URL", "foobar")
  113. parser := NewParser()
  114. opts, err := parser.ParseEnvironmentVariables()
  115. if err != nil {
  116. t.Fatalf(`Parsing failure: %v`, err)
  117. }
  118. expected := "foobar"
  119. result := opts.DatabaseURL()
  120. if result != expected {
  121. t.Errorf(`Unexpected DATABASE_URL value, got %q instead of %q`, result, expected)
  122. }
  123. if opts.IsDefaultDatabaseURL() {
  124. t.Errorf(`This is not the default database URL and it should returns false`)
  125. }
  126. }
  127. func TestDefaultDatabaseURLValue(t *testing.T) {
  128. os.Clearenv()
  129. parser := NewParser()
  130. opts, err := parser.ParseEnvironmentVariables()
  131. if err != nil {
  132. t.Fatalf(`Parsing failure: %v`, err)
  133. }
  134. expected := defaultDatabaseURL
  135. result := opts.DatabaseURL()
  136. if result != expected {
  137. t.Errorf(`Unexpected DATABASE_URL value, got %q instead of %q`, result, expected)
  138. }
  139. if !opts.IsDefaultDatabaseURL() {
  140. t.Errorf(`This is the default database URL and it should returns true`)
  141. }
  142. }
  143. func TestDefaultDatabaseMaxConnsValue(t *testing.T) {
  144. os.Clearenv()
  145. parser := NewParser()
  146. opts, err := parser.ParseEnvironmentVariables()
  147. if err != nil {
  148. t.Fatalf(`Parsing failure: %v`, err)
  149. }
  150. expected := defaultDatabaseMaxConns
  151. result := opts.DatabaseMaxConns()
  152. if result != expected {
  153. t.Fatalf(`Unexpected DATABASE_MAX_CONNS value, got %v instead of %v`, result, expected)
  154. }
  155. }
  156. func TestDatabaseMaxConns(t *testing.T) {
  157. os.Clearenv()
  158. os.Setenv("DATABASE_MAX_CONNS", "42")
  159. parser := NewParser()
  160. opts, err := parser.ParseEnvironmentVariables()
  161. if err != nil {
  162. t.Fatalf(`Parsing failure: %v`, err)
  163. }
  164. expected := 42
  165. result := opts.DatabaseMaxConns()
  166. if result != expected {
  167. t.Fatalf(`Unexpected DATABASE_MAX_CONNS value, got %v instead of %v`, result, expected)
  168. }
  169. }
  170. func TestDefaultDatabaseMinConnsValue(t *testing.T) {
  171. os.Clearenv()
  172. parser := NewParser()
  173. opts, err := parser.ParseEnvironmentVariables()
  174. if err != nil {
  175. t.Fatalf(`Parsing failure: %v`, err)
  176. }
  177. expected := defaultDatabaseMinConns
  178. result := opts.DatabaseMinConns()
  179. if result != expected {
  180. t.Fatalf(`Unexpected DATABASE_MIN_CONNS value, got %v instead of %v`, result, expected)
  181. }
  182. }
  183. func TestDatabaseMinConns(t *testing.T) {
  184. os.Clearenv()
  185. os.Setenv("DATABASE_MIN_CONNS", "42")
  186. parser := NewParser()
  187. opts, err := parser.ParseEnvironmentVariables()
  188. if err != nil {
  189. t.Fatalf(`Parsing failure: %v`, err)
  190. }
  191. expected := 42
  192. result := opts.DatabaseMinConns()
  193. if result != expected {
  194. t.Fatalf(`Unexpected DATABASE_MIN_CONNS value, got %v instead of %v`, result, expected)
  195. }
  196. }
  197. func TestListenAddr(t *testing.T) {
  198. os.Clearenv()
  199. os.Setenv("LISTEN_ADDR", "foobar")
  200. parser := NewParser()
  201. opts, err := parser.ParseEnvironmentVariables()
  202. if err != nil {
  203. t.Fatalf(`Parsing failure: %v`, err)
  204. }
  205. expected := "foobar"
  206. result := opts.ListenAddr()
  207. if result != expected {
  208. t.Fatalf(`Unexpected LISTEN_ADDR value, got %q instead of %q`, result, expected)
  209. }
  210. }
  211. func TestListenAddrWithPortDefined(t *testing.T) {
  212. os.Clearenv()
  213. os.Setenv("PORT", "3000")
  214. os.Setenv("LISTEN_ADDR", "foobar")
  215. parser := NewParser()
  216. opts, err := parser.ParseEnvironmentVariables()
  217. if err != nil {
  218. t.Fatalf(`Parsing failure: %v`, err)
  219. }
  220. expected := ":3000"
  221. result := opts.ListenAddr()
  222. if result != expected {
  223. t.Fatalf(`Unexpected LISTEN_ADDR value, got %q instead of %q`, result, expected)
  224. }
  225. }
  226. func TestDefaultListenAddrValue(t *testing.T) {
  227. os.Clearenv()
  228. parser := NewParser()
  229. opts, err := parser.ParseEnvironmentVariables()
  230. if err != nil {
  231. t.Fatalf(`Parsing failure: %v`, err)
  232. }
  233. expected := defaultListenAddr
  234. result := opts.ListenAddr()
  235. if result != expected {
  236. t.Fatalf(`Unexpected LISTEN_ADDR value, got %q instead of %q`, result, expected)
  237. }
  238. }
  239. func TestCertFile(t *testing.T) {
  240. os.Clearenv()
  241. os.Setenv("CERT_FILE", "foobar")
  242. parser := NewParser()
  243. opts, err := parser.ParseEnvironmentVariables()
  244. if err != nil {
  245. t.Fatalf(`Parsing failure: %v`, err)
  246. }
  247. expected := "foobar"
  248. result := opts.CertFile()
  249. if result != expected {
  250. t.Fatalf(`Unexpected CERT_FILE value, got %q instead of %q`, result, expected)
  251. }
  252. }
  253. func TestDefaultCertFileValue(t *testing.T) {
  254. os.Clearenv()
  255. parser := NewParser()
  256. opts, err := parser.ParseEnvironmentVariables()
  257. if err != nil {
  258. t.Fatalf(`Parsing failure: %v`, err)
  259. }
  260. expected := defaultCertFile
  261. result := opts.CertFile()
  262. if result != expected {
  263. t.Fatalf(`Unexpected CERT_FILE value, got %q instead of %q`, result, expected)
  264. }
  265. }
  266. func TestKeyFile(t *testing.T) {
  267. os.Clearenv()
  268. os.Setenv("KEY_FILE", "foobar")
  269. parser := NewParser()
  270. opts, err := parser.ParseEnvironmentVariables()
  271. if err != nil {
  272. t.Fatalf(`Parsing failure: %v`, err)
  273. }
  274. expected := "foobar"
  275. result := opts.CertKeyFile()
  276. if result != expected {
  277. t.Fatalf(`Unexpected KEY_FILE value, got %q instead of %q`, result, expected)
  278. }
  279. }
  280. func TestDefaultKeyFileValue(t *testing.T) {
  281. os.Clearenv()
  282. parser := NewParser()
  283. opts, err := parser.ParseEnvironmentVariables()
  284. if err != nil {
  285. t.Fatalf(`Parsing failure: %v`, err)
  286. }
  287. expected := defaultKeyFile
  288. result := opts.CertKeyFile()
  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. parser := NewParser()
  297. opts, err := parser.ParseEnvironmentVariables()
  298. if err != nil {
  299. t.Fatalf(`Parsing failure: %v`, err)
  300. }
  301. expected := "example.org"
  302. result := opts.CertDomain()
  303. if result != expected {
  304. t.Fatalf(`Unexpected CERT_DOMAIN value, got %q instead of %q`, result, expected)
  305. }
  306. }
  307. func TestDefaultCertDomainValue(t *testing.T) {
  308. os.Clearenv()
  309. parser := NewParser()
  310. opts, err := parser.ParseEnvironmentVariables()
  311. if err != nil {
  312. t.Fatalf(`Parsing failure: %v`, err)
  313. }
  314. expected := defaultCertDomain
  315. result := opts.CertDomain()
  316. if result != expected {
  317. t.Fatalf(`Unexpected CERT_DOMAIN value, got %q instead of %q`, result, expected)
  318. }
  319. }
  320. func TestDefaultCleanupFrequencyHoursValue(t *testing.T) {
  321. os.Clearenv()
  322. parser := NewParser()
  323. opts, err := parser.ParseEnvironmentVariables()
  324. if err != nil {
  325. t.Fatalf(`Parsing failure: %v`, err)
  326. }
  327. expected := defaultCleanupFrequencyHours
  328. result := opts.CleanupFrequencyHours()
  329. if result != expected {
  330. t.Fatalf(`Unexpected CLEANUP_FREQUENCY_HOURS value, got %v instead of %v`, result, expected)
  331. }
  332. }
  333. func TestCleanupFrequencyHours(t *testing.T) {
  334. os.Clearenv()
  335. os.Setenv("CLEANUP_FREQUENCY_HOURS", "42")
  336. os.Setenv("CLEANUP_FREQUENCY", "19")
  337. parser := NewParser()
  338. opts, err := parser.ParseEnvironmentVariables()
  339. if err != nil {
  340. t.Fatalf(`Parsing failure: %v`, err)
  341. }
  342. expected := 42
  343. result := opts.CleanupFrequencyHours()
  344. if result != expected {
  345. t.Fatalf(`Unexpected CLEANUP_FREQUENCY_HOURS value, got %v instead of %v`, result, expected)
  346. }
  347. }
  348. func TestDefaultCleanupArchiveReadDaysValue(t *testing.T) {
  349. os.Clearenv()
  350. parser := NewParser()
  351. opts, err := parser.ParseEnvironmentVariables()
  352. if err != nil {
  353. t.Fatalf(`Parsing failure: %v`, err)
  354. }
  355. expected := 60
  356. result := opts.CleanupArchiveReadDays()
  357. if result != expected {
  358. t.Fatalf(`Unexpected CLEANUP_ARCHIVE_READ_DAYS value, got %v instead of %v`, result, expected)
  359. }
  360. }
  361. func TestCleanupArchiveReadDays(t *testing.T) {
  362. os.Clearenv()
  363. os.Setenv("CLEANUP_ARCHIVE_READ_DAYS", "7")
  364. os.Setenv("ARCHIVE_READ_DAYS", "19")
  365. parser := NewParser()
  366. opts, err := parser.ParseEnvironmentVariables()
  367. if err != nil {
  368. t.Fatalf(`Parsing failure: %v`, err)
  369. }
  370. expected := 7
  371. result := opts.CleanupArchiveReadDays()
  372. if result != expected {
  373. t.Fatalf(`Unexpected CLEANUP_ARCHIVE_READ_DAYS value, got %v instead of %v`, result, expected)
  374. }
  375. }
  376. func TestDefaultCleanupRemoveSessionsDaysValue(t *testing.T) {
  377. os.Clearenv()
  378. parser := NewParser()
  379. opts, err := parser.ParseEnvironmentVariables()
  380. if err != nil {
  381. t.Fatalf(`Parsing failure: %v`, err)
  382. }
  383. expected := 30
  384. result := opts.CleanupRemoveSessionsDays()
  385. if result != expected {
  386. t.Fatalf(`Unexpected CLEANUP_REMOVE_SESSIONS_DAYS value, got %v instead of %v`, result, expected)
  387. }
  388. }
  389. func TestCleanupRemoveSessionsDays(t *testing.T) {
  390. os.Clearenv()
  391. os.Setenv("CLEANUP_REMOVE_SESSIONS_DAYS", "7")
  392. parser := NewParser()
  393. opts, err := parser.ParseEnvironmentVariables()
  394. if err != nil {
  395. t.Fatalf(`Parsing failure: %v`, err)
  396. }
  397. expected := 7
  398. result := opts.CleanupRemoveSessionsDays()
  399. if result != expected {
  400. t.Fatalf(`Unexpected CLEANUP_REMOVE_SESSIONS_DAYS value, got %v instead of %v`, result, expected)
  401. }
  402. }
  403. func TestDefaultWorkerPoolSizeValue(t *testing.T) {
  404. os.Clearenv()
  405. parser := NewParser()
  406. opts, err := parser.ParseEnvironmentVariables()
  407. if err != nil {
  408. t.Fatalf(`Parsing failure: %v`, err)
  409. }
  410. expected := defaultWorkerPoolSize
  411. result := opts.WorkerPoolSize()
  412. if result != expected {
  413. t.Fatalf(`Unexpected WORKER_POOL_SIZE value, got %v instead of %v`, result, expected)
  414. }
  415. }
  416. func TestWorkerPoolSize(t *testing.T) {
  417. os.Clearenv()
  418. os.Setenv("WORKER_POOL_SIZE", "42")
  419. parser := NewParser()
  420. opts, err := parser.ParseEnvironmentVariables()
  421. if err != nil {
  422. t.Fatalf(`Parsing failure: %v`, err)
  423. }
  424. expected := 42
  425. result := opts.WorkerPoolSize()
  426. if result != expected {
  427. t.Fatalf(`Unexpected WORKER_POOL_SIZE value, got %v instead of %v`, result, expected)
  428. }
  429. }
  430. func TestDefautPollingFrequencyValue(t *testing.T) {
  431. os.Clearenv()
  432. parser := NewParser()
  433. opts, err := parser.ParseEnvironmentVariables()
  434. if err != nil {
  435. t.Fatalf(`Parsing failure: %v`, err)
  436. }
  437. expected := defaultPollingFrequency
  438. result := opts.PollingFrequency()
  439. if result != expected {
  440. t.Fatalf(`Unexpected POLLING_FREQUENCY value, got %v instead of %v`, result, expected)
  441. }
  442. }
  443. func TestPollingFrequency(t *testing.T) {
  444. os.Clearenv()
  445. os.Setenv("POLLING_FREQUENCY", "42")
  446. parser := NewParser()
  447. opts, err := parser.ParseEnvironmentVariables()
  448. if err != nil {
  449. t.Fatalf(`Parsing failure: %v`, err)
  450. }
  451. expected := 42
  452. result := opts.PollingFrequency()
  453. if result != expected {
  454. t.Fatalf(`Unexpected POLLING_FREQUENCY value, got %v instead of %v`, result, expected)
  455. }
  456. }
  457. func TestDefaultBatchSizeValue(t *testing.T) {
  458. os.Clearenv()
  459. parser := NewParser()
  460. opts, err := parser.ParseEnvironmentVariables()
  461. if err != nil {
  462. t.Fatalf(`Parsing failure: %v`, err)
  463. }
  464. expected := defaultBatchSize
  465. result := opts.BatchSize()
  466. if result != expected {
  467. t.Fatalf(`Unexpected BATCH_SIZE value, got %v instead of %v`, result, expected)
  468. }
  469. }
  470. func TestBatchSize(t *testing.T) {
  471. os.Clearenv()
  472. os.Setenv("BATCH_SIZE", "42")
  473. parser := NewParser()
  474. opts, err := parser.ParseEnvironmentVariables()
  475. if err != nil {
  476. t.Fatalf(`Parsing failure: %v`, err)
  477. }
  478. expected := 42
  479. result := opts.BatchSize()
  480. if result != expected {
  481. t.Fatalf(`Unexpected BATCH_SIZE value, got %v instead of %v`, result, expected)
  482. }
  483. }
  484. func TestDefautPollingSchedulerValue(t *testing.T) {
  485. os.Clearenv()
  486. parser := NewParser()
  487. opts, err := parser.ParseEnvironmentVariables()
  488. if err != nil {
  489. t.Fatalf(`Parsing failure: %v`, err)
  490. }
  491. expected := defaultPollingScheduler
  492. result := opts.PollingScheduler()
  493. if result != expected {
  494. t.Fatalf(`Unexpected POLLING_SCHEDULER value, got %v instead of %v`, result, expected)
  495. }
  496. }
  497. func TestPollingScheduler(t *testing.T) {
  498. os.Clearenv()
  499. os.Setenv("POLLING_SCHEDULER", "entry_count_based")
  500. parser := NewParser()
  501. opts, err := parser.ParseEnvironmentVariables()
  502. if err != nil {
  503. t.Fatalf(`Parsing failure: %v`, err)
  504. }
  505. expected := "entry_count_based"
  506. result := opts.PollingScheduler()
  507. if result != expected {
  508. t.Fatalf(`Unexpected POLLING_SCHEDULER value, got %v instead of %v`, result, expected)
  509. }
  510. }
  511. func TestDefautSchedulerCountBasedMaxIntervalValue(t *testing.T) {
  512. os.Clearenv()
  513. parser := NewParser()
  514. opts, err := parser.ParseEnvironmentVariables()
  515. if err != nil {
  516. t.Fatalf(`Parsing failure: %v`, err)
  517. }
  518. expected := defaultSchedulerEntryFrequencyMaxInterval
  519. result := opts.SchedulerEntryFrequencyMaxInterval()
  520. if result != expected {
  521. t.Fatalf(`Unexpected SCHEDULER_ENTRY_FREQUENCY_MAX_INTERVAL value, got %v instead of %v`, result, expected)
  522. }
  523. }
  524. func TestDefautSchedulerCountBasedMaxInterval(t *testing.T) {
  525. os.Clearenv()
  526. os.Setenv("SCHEDULER_ENTRY_FREQUENCY_MAX_INTERVAL", "30")
  527. parser := NewParser()
  528. opts, err := parser.ParseEnvironmentVariables()
  529. if err != nil {
  530. t.Fatalf(`Parsing failure: %v`, err)
  531. }
  532. expected := 30
  533. result := opts.SchedulerEntryFrequencyMaxInterval()
  534. if result != expected {
  535. t.Fatalf(`Unexpected SCHEDULER_ENTRY_FREQUENCY_MAX_INTERVAL value, got %v instead of %v`, result, expected)
  536. }
  537. }
  538. func TestDefautSchedulerCountBasedMinIntervalValue(t *testing.T) {
  539. os.Clearenv()
  540. parser := NewParser()
  541. opts, err := parser.ParseEnvironmentVariables()
  542. if err != nil {
  543. t.Fatalf(`Parsing failure: %v`, err)
  544. }
  545. expected := defaultSchedulerEntryFrequencyMinInterval
  546. result := opts.SchedulerEntryFrequencyMinInterval()
  547. if result != expected {
  548. t.Fatalf(`Unexpected SCHEDULER_ENTRY_FREQUENCY_MIN_INTERVAL value, got %v instead of %v`, result, expected)
  549. }
  550. }
  551. func TestDefautSchedulerCountBasedMinInterval(t *testing.T) {
  552. os.Clearenv()
  553. os.Setenv("SCHEDULER_ENTRY_FREQUENCY_MIN_INTERVAL", "30")
  554. parser := NewParser()
  555. opts, err := parser.ParseEnvironmentVariables()
  556. if err != nil {
  557. t.Fatalf(`Parsing failure: %v`, err)
  558. }
  559. expected := 30
  560. result := opts.SchedulerEntryFrequencyMinInterval()
  561. if result != expected {
  562. t.Fatalf(`Unexpected SCHEDULER_ENTRY_FREQUENCY_MIN_INTERVAL value, got %v instead of %v`, result, expected)
  563. }
  564. }
  565. func TestPollingParsingErrorLimit(t *testing.T) {
  566. os.Clearenv()
  567. os.Setenv("POLLING_PARSING_ERROR_LIMIT", "100")
  568. parser := NewParser()
  569. opts, err := parser.ParseEnvironmentVariables()
  570. if err != nil {
  571. t.Fatalf(`Parsing failure: %v`, err)
  572. }
  573. expected := 100
  574. result := opts.PollingParsingErrorLimit()
  575. if result != expected {
  576. t.Fatalf(`Unexpected POLLING_SCHEDULER value, got %v instead of %v`, result, expected)
  577. }
  578. }
  579. func TestOAuth2UserCreationWhenUnset(t *testing.T) {
  580. os.Clearenv()
  581. parser := NewParser()
  582. opts, err := parser.ParseEnvironmentVariables()
  583. if err != nil {
  584. t.Fatalf(`Parsing failure: %v`, err)
  585. }
  586. expected := false
  587. result := opts.IsOAuth2UserCreationAllowed()
  588. if result != expected {
  589. t.Fatalf(`Unexpected OAUTH2_USER_CREATION value, got %v instead of %v`, result, expected)
  590. }
  591. }
  592. func TestOAuth2UserCreationAdmin(t *testing.T) {
  593. os.Clearenv()
  594. os.Setenv("OAUTH2_USER_CREATION", "1")
  595. parser := NewParser()
  596. opts, err := parser.ParseEnvironmentVariables()
  597. if err != nil {
  598. t.Fatalf(`Parsing failure: %v`, err)
  599. }
  600. expected := true
  601. result := opts.IsOAuth2UserCreationAllowed()
  602. if result != expected {
  603. t.Fatalf(`Unexpected OAUTH2_USER_CREATION value, got %v instead of %v`, result, expected)
  604. }
  605. }
  606. func TestOAuth2ClientID(t *testing.T) {
  607. os.Clearenv()
  608. os.Setenv("OAUTH2_CLIENT_ID", "foobar")
  609. parser := NewParser()
  610. opts, err := parser.ParseEnvironmentVariables()
  611. if err != nil {
  612. t.Fatalf(`Parsing failure: %v`, err)
  613. }
  614. expected := "foobar"
  615. result := opts.OAuth2ClientID()
  616. if result != expected {
  617. t.Fatalf(`Unexpected OAUTH2_CLIENT_ID value, got %q instead of %q`, result, expected)
  618. }
  619. }
  620. func TestDefaultOAuth2ClientIDValue(t *testing.T) {
  621. os.Clearenv()
  622. parser := NewParser()
  623. opts, err := parser.ParseEnvironmentVariables()
  624. if err != nil {
  625. t.Fatalf(`Parsing failure: %v`, err)
  626. }
  627. expected := defaultOAuth2ClientID
  628. result := opts.OAuth2ClientID()
  629. if result != expected {
  630. t.Fatalf(`Unexpected OAUTH2_CLIENT_ID value, got %q instead of %q`, result, expected)
  631. }
  632. }
  633. func TestOAuth2ClientSecret(t *testing.T) {
  634. os.Clearenv()
  635. os.Setenv("OAUTH2_CLIENT_SECRET", "secret")
  636. parser := NewParser()
  637. opts, err := parser.ParseEnvironmentVariables()
  638. if err != nil {
  639. t.Fatalf(`Parsing failure: %v`, err)
  640. }
  641. expected := "secret"
  642. result := opts.OAuth2ClientSecret()
  643. if result != expected {
  644. t.Fatalf(`Unexpected OAUTH2_CLIENT_SECRET value, got %q instead of %q`, result, expected)
  645. }
  646. }
  647. func TestDefaultOAuth2ClientSecretValue(t *testing.T) {
  648. os.Clearenv()
  649. parser := NewParser()
  650. opts, err := parser.ParseEnvironmentVariables()
  651. if err != nil {
  652. t.Fatalf(`Parsing failure: %v`, err)
  653. }
  654. expected := defaultOAuth2ClientSecret
  655. result := opts.OAuth2ClientSecret()
  656. if result != expected {
  657. t.Fatalf(`Unexpected OAUTH2_CLIENT_SECRET value, got %q instead of %q`, result, expected)
  658. }
  659. }
  660. func TestOAuth2RedirectURL(t *testing.T) {
  661. os.Clearenv()
  662. os.Setenv("OAUTH2_REDIRECT_URL", "http://example.org")
  663. parser := NewParser()
  664. opts, err := parser.ParseEnvironmentVariables()
  665. if err != nil {
  666. t.Fatalf(`Parsing failure: %v`, err)
  667. }
  668. expected := "http://example.org"
  669. result := opts.OAuth2RedirectURL()
  670. if result != expected {
  671. t.Fatalf(`Unexpected OAUTH2_REDIRECT_URL value, got %q instead of %q`, result, expected)
  672. }
  673. }
  674. func TestDefaultOAuth2RedirectURLValue(t *testing.T) {
  675. os.Clearenv()
  676. parser := NewParser()
  677. opts, err := parser.ParseEnvironmentVariables()
  678. if err != nil {
  679. t.Fatalf(`Parsing failure: %v`, err)
  680. }
  681. expected := defaultOAuth2RedirectURL
  682. result := opts.OAuth2RedirectURL()
  683. if result != expected {
  684. t.Fatalf(`Unexpected OAUTH2_REDIRECT_URL value, got %q instead of %q`, result, expected)
  685. }
  686. }
  687. func TestOAuth2OidcDiscoveryEndpoint(t *testing.T) {
  688. os.Clearenv()
  689. os.Setenv("OAUTH2_OIDC_DISCOVERY_ENDPOINT", "http://example.org")
  690. parser := NewParser()
  691. opts, err := parser.ParseEnvironmentVariables()
  692. if err != nil {
  693. t.Fatalf(`Parsing failure: %v`, err)
  694. }
  695. expected := "http://example.org"
  696. result := opts.OAuth2OidcDiscoveryEndpoint()
  697. if result != expected {
  698. t.Fatalf(`Unexpected OAUTH2_OIDC_DISCOVERY_ENDPOINT value, got %q instead of %q`, result, expected)
  699. }
  700. }
  701. func TestDefaultOAuth2OidcDiscoveryEndpointValue(t *testing.T) {
  702. os.Clearenv()
  703. parser := NewParser()
  704. opts, err := parser.ParseEnvironmentVariables()
  705. if err != nil {
  706. t.Fatalf(`Parsing failure: %v`, err)
  707. }
  708. expected := defaultOAuth2OidcDiscoveryEndpoint
  709. result := opts.OAuth2OidcDiscoveryEndpoint()
  710. if result != expected {
  711. t.Fatalf(`Unexpected OAUTH2_REDIRECT_URL value, got %q instead of %q`, result, expected)
  712. }
  713. }
  714. func TestOAuth2Provider(t *testing.T) {
  715. os.Clearenv()
  716. os.Setenv("OAUTH2_PROVIDER", "google")
  717. parser := NewParser()
  718. opts, err := parser.ParseEnvironmentVariables()
  719. if err != nil {
  720. t.Fatalf(`Parsing failure: %v`, err)
  721. }
  722. expected := "google"
  723. result := opts.OAuth2Provider()
  724. if result != expected {
  725. t.Fatalf(`Unexpected OAUTH2_PROVIDER value, got %q instead of %q`, result, expected)
  726. }
  727. }
  728. func TestDefaultOAuth2ProviderValue(t *testing.T) {
  729. os.Clearenv()
  730. parser := NewParser()
  731. opts, err := parser.ParseEnvironmentVariables()
  732. if err != nil {
  733. t.Fatalf(`Parsing failure: %v`, err)
  734. }
  735. expected := defaultOAuth2Provider
  736. result := opts.OAuth2Provider()
  737. if result != expected {
  738. t.Fatalf(`Unexpected OAUTH2_PROVIDER value, got %q instead of %q`, result, expected)
  739. }
  740. }
  741. func TestHSTSWhenUnset(t *testing.T) {
  742. os.Clearenv()
  743. parser := NewParser()
  744. opts, err := parser.ParseEnvironmentVariables()
  745. if err != nil {
  746. t.Fatalf(`Parsing failure: %v`, err)
  747. }
  748. expected := true
  749. result := opts.HasHSTS()
  750. if result != expected {
  751. t.Fatalf(`Unexpected DISABLE_HSTS value, got %v instead of %v`, result, expected)
  752. }
  753. }
  754. func TestHSTS(t *testing.T) {
  755. os.Clearenv()
  756. os.Setenv("DISABLE_HSTS", "1")
  757. parser := NewParser()
  758. opts, err := parser.ParseEnvironmentVariables()
  759. if err != nil {
  760. t.Fatalf(`Parsing failure: %v`, err)
  761. }
  762. expected := false
  763. result := opts.HasHSTS()
  764. if result != expected {
  765. t.Fatalf(`Unexpected DISABLE_HSTS value, got %v instead of %v`, result, expected)
  766. }
  767. }
  768. func TestDisableHTTPServiceWhenUnset(t *testing.T) {
  769. os.Clearenv()
  770. parser := NewParser()
  771. opts, err := parser.ParseEnvironmentVariables()
  772. if err != nil {
  773. t.Fatalf(`Parsing failure: %v`, err)
  774. }
  775. expected := true
  776. result := opts.HasHTTPService()
  777. if result != expected {
  778. t.Fatalf(`Unexpected DISABLE_HTTP_SERVICE value, got %v instead of %v`, result, expected)
  779. }
  780. }
  781. func TestDisableHTTPService(t *testing.T) {
  782. os.Clearenv()
  783. os.Setenv("DISABLE_HTTP_SERVICE", "1")
  784. parser := NewParser()
  785. opts, err := parser.ParseEnvironmentVariables()
  786. if err != nil {
  787. t.Fatalf(`Parsing failure: %v`, err)
  788. }
  789. expected := false
  790. result := opts.HasHTTPService()
  791. if result != expected {
  792. t.Fatalf(`Unexpected DISABLE_HTTP_SERVICE value, got %v instead of %v`, result, expected)
  793. }
  794. }
  795. func TestDisableSchedulerServiceWhenUnset(t *testing.T) {
  796. os.Clearenv()
  797. parser := NewParser()
  798. opts, err := parser.ParseEnvironmentVariables()
  799. if err != nil {
  800. t.Fatalf(`Parsing failure: %v`, err)
  801. }
  802. expected := true
  803. result := opts.HasSchedulerService()
  804. if result != expected {
  805. t.Fatalf(`Unexpected DISABLE_SCHEDULER_SERVICE value, got %v instead of %v`, result, expected)
  806. }
  807. }
  808. func TestDisableSchedulerService(t *testing.T) {
  809. os.Clearenv()
  810. os.Setenv("DISABLE_SCHEDULER_SERVICE", "1")
  811. parser := NewParser()
  812. opts, err := parser.ParseEnvironmentVariables()
  813. if err != nil {
  814. t.Fatalf(`Parsing failure: %v`, err)
  815. }
  816. expected := false
  817. result := opts.HasSchedulerService()
  818. if result != expected {
  819. t.Fatalf(`Unexpected DISABLE_SCHEDULER_SERVICE value, got %v instead of %v`, result, expected)
  820. }
  821. }
  822. func TestRunMigrationsWhenUnset(t *testing.T) {
  823. os.Clearenv()
  824. parser := NewParser()
  825. opts, err := parser.ParseEnvironmentVariables()
  826. if err != nil {
  827. t.Fatalf(`Parsing failure: %v`, err)
  828. }
  829. expected := false
  830. result := opts.RunMigrations()
  831. if result != expected {
  832. t.Fatalf(`Unexpected RUN_MIGRATIONS value, got %v instead of %v`, result, expected)
  833. }
  834. }
  835. func TestRunMigrations(t *testing.T) {
  836. os.Clearenv()
  837. os.Setenv("RUN_MIGRATIONS", "yes")
  838. parser := NewParser()
  839. opts, err := parser.ParseEnvironmentVariables()
  840. if err != nil {
  841. t.Fatalf(`Parsing failure: %v`, err)
  842. }
  843. expected := true
  844. result := opts.RunMigrations()
  845. if result != expected {
  846. t.Fatalf(`Unexpected RUN_MIGRATIONS value, got %v instead of %v`, result, expected)
  847. }
  848. }
  849. func TestCreateAdminWhenUnset(t *testing.T) {
  850. os.Clearenv()
  851. parser := NewParser()
  852. opts, err := parser.ParseEnvironmentVariables()
  853. if err != nil {
  854. t.Fatalf(`Parsing failure: %v`, err)
  855. }
  856. expected := false
  857. result := opts.CreateAdmin()
  858. if result != expected {
  859. t.Fatalf(`Unexpected CREATE_ADMIN value, got %v instead of %v`, result, expected)
  860. }
  861. }
  862. func TestCreateAdmin(t *testing.T) {
  863. os.Clearenv()
  864. os.Setenv("CREATE_ADMIN", "true")
  865. parser := NewParser()
  866. opts, err := parser.ParseEnvironmentVariables()
  867. if err != nil {
  868. t.Fatalf(`Parsing failure: %v`, err)
  869. }
  870. expected := true
  871. result := opts.CreateAdmin()
  872. if result != expected {
  873. t.Fatalf(`Unexpected CREATE_ADMIN value, got %v instead of %v`, result, expected)
  874. }
  875. }
  876. func TestPocketConsumerKeyFromEnvVariable(t *testing.T) {
  877. os.Clearenv()
  878. os.Setenv("POCKET_CONSUMER_KEY", "something")
  879. parser := NewParser()
  880. opts, err := parser.ParseEnvironmentVariables()
  881. if err != nil {
  882. t.Fatalf(`Parsing failure: %v`, err)
  883. }
  884. expected := "something"
  885. result := opts.PocketConsumerKey("default")
  886. if result != expected {
  887. t.Fatalf(`Unexpected POCKET_CONSUMER_KEY value, got %q instead of %q`, result, expected)
  888. }
  889. }
  890. func TestPocketConsumerKeyFromUserPrefs(t *testing.T) {
  891. os.Clearenv()
  892. parser := NewParser()
  893. opts, err := parser.ParseEnvironmentVariables()
  894. if err != nil {
  895. t.Fatalf(`Parsing failure: %v`, err)
  896. }
  897. expected := "default"
  898. result := opts.PocketConsumerKey("default")
  899. if result != expected {
  900. t.Fatalf(`Unexpected POCKET_CONSUMER_KEY value, got %q instead of %q`, result, expected)
  901. }
  902. }
  903. func TestProxyImages(t *testing.T) {
  904. os.Clearenv()
  905. os.Setenv("PROXY_IMAGES", "all")
  906. parser := NewParser()
  907. opts, err := parser.ParseEnvironmentVariables()
  908. if err != nil {
  909. t.Fatalf(`Parsing failure: %v`, err)
  910. }
  911. expected := "all"
  912. result := opts.ProxyImages()
  913. if result != expected {
  914. t.Fatalf(`Unexpected PROXY_IMAGES value, got %q instead of %q`, result, expected)
  915. }
  916. }
  917. func TestDefaultProxyImagesValue(t *testing.T) {
  918. os.Clearenv()
  919. parser := NewParser()
  920. opts, err := parser.ParseEnvironmentVariables()
  921. if err != nil {
  922. t.Fatalf(`Parsing failure: %v`, err)
  923. }
  924. expected := defaultProxyImages
  925. result := opts.ProxyImages()
  926. if result != expected {
  927. t.Fatalf(`Unexpected PROXY_IMAGES value, got %q instead of %q`, result, expected)
  928. }
  929. }
  930. func TestHTTPSOff(t *testing.T) {
  931. os.Clearenv()
  932. parser := NewParser()
  933. opts, err := parser.ParseEnvironmentVariables()
  934. if err != nil {
  935. t.Fatalf(`Parsing failure: %v`, err)
  936. }
  937. if opts.HTTPS {
  938. t.Fatalf(`Unexpected HTTPS value, got "%v"`, opts.HTTPS)
  939. }
  940. }
  941. func TestHTTPSOn(t *testing.T) {
  942. os.Clearenv()
  943. os.Setenv("HTTPS", "on")
  944. parser := NewParser()
  945. opts, err := parser.ParseEnvironmentVariables()
  946. if err != nil {
  947. t.Fatalf(`Parsing failure: %v`, err)
  948. }
  949. if !opts.HTTPS {
  950. t.Fatalf(`Unexpected HTTPS value, got "%v"`, opts.HTTPS)
  951. }
  952. }
  953. func TestHTTPClientTimeout(t *testing.T) {
  954. os.Clearenv()
  955. os.Setenv("HTTP_CLIENT_TIMEOUT", "42")
  956. parser := NewParser()
  957. opts, err := parser.ParseEnvironmentVariables()
  958. if err != nil {
  959. t.Fatalf(`Parsing failure: %v`, err)
  960. }
  961. expected := 42
  962. result := opts.HTTPClientTimeout()
  963. if result != expected {
  964. t.Fatalf(`Unexpected HTTP_CLIENT_TIMEOUT value, got %d instead of %d`, result, expected)
  965. }
  966. }
  967. func TestDefaultHTTPClientTimeoutValue(t *testing.T) {
  968. os.Clearenv()
  969. parser := NewParser()
  970. opts, err := parser.ParseEnvironmentVariables()
  971. if err != nil {
  972. t.Fatalf(`Parsing failure: %v`, err)
  973. }
  974. expected := defaultHTTPClientTimeout
  975. result := opts.HTTPClientTimeout()
  976. if result != expected {
  977. t.Fatalf(`Unexpected HTTP_CLIENT_TIMEOUT value, got %d instead of %d`, result, expected)
  978. }
  979. }
  980. func TestHTTPClientMaxBodySize(t *testing.T) {
  981. os.Clearenv()
  982. os.Setenv("HTTP_CLIENT_MAX_BODY_SIZE", "42")
  983. parser := NewParser()
  984. opts, err := parser.ParseEnvironmentVariables()
  985. if err != nil {
  986. t.Fatalf(`Parsing failure: %v`, err)
  987. }
  988. expected := int64(42 * 1024 * 1024)
  989. result := opts.HTTPClientMaxBodySize()
  990. if result != expected {
  991. t.Fatalf(`Unexpected HTTP_CLIENT_MAX_BODY_SIZE value, got %d instead of %d`, result, expected)
  992. }
  993. }
  994. func TestDefaultHTTPClientMaxBodySizeValue(t *testing.T) {
  995. os.Clearenv()
  996. parser := NewParser()
  997. opts, err := parser.ParseEnvironmentVariables()
  998. if err != nil {
  999. t.Fatalf(`Parsing failure: %v`, err)
  1000. }
  1001. expected := int64(defaultHTTPClientMaxBodySize * 1024 * 1024)
  1002. result := opts.HTTPClientMaxBodySize()
  1003. if result != expected {
  1004. t.Fatalf(`Unexpected HTTP_CLIENT_MAX_BODY_SIZE value, got %d instead of %d`, result, expected)
  1005. }
  1006. }
  1007. func TestParseConfigFile(t *testing.T) {
  1008. content := []byte(`
  1009. # This is a comment
  1010. DEBUG = yes
  1011. POCKET_CONSUMER_KEY= >#1234
  1012. Invalid text
  1013. `)
  1014. tmpfile, err := ioutil.TempFile(".", "miniflux.*.unit_test.conf")
  1015. if err != nil {
  1016. t.Fatal(err)
  1017. }
  1018. if _, err := tmpfile.Write(content); err != nil {
  1019. t.Fatal(err)
  1020. }
  1021. os.Clearenv()
  1022. parser := NewParser()
  1023. opts, err := parser.ParseFile(tmpfile.Name())
  1024. if err != nil {
  1025. t.Errorf(`Parsing failure: %v`, err)
  1026. }
  1027. if opts.HasDebugMode() != true {
  1028. t.Errorf(`Unexpected debug mode value, got "%v"`, opts.HasDebugMode())
  1029. }
  1030. expected := ">#1234"
  1031. result := opts.PocketConsumerKey("default")
  1032. if result != expected {
  1033. t.Errorf(`Unexpected POCKET_CONSUMER_KEY value, got %q instead of %q`, result, expected)
  1034. }
  1035. if err := tmpfile.Close(); err != nil {
  1036. t.Fatal(err)
  1037. }
  1038. if err := os.Remove(tmpfile.Name()); err != nil {
  1039. t.Fatal(err)
  1040. }
  1041. }
  1042. func TestAuthProxyHeader(t *testing.T) {
  1043. os.Clearenv()
  1044. os.Setenv("AUTH_PROXY_HEADER", "X-Forwarded-User")
  1045. parser := NewParser()
  1046. opts, err := parser.ParseEnvironmentVariables()
  1047. if err != nil {
  1048. t.Fatalf(`Parsing failure: %v`, err)
  1049. }
  1050. expected := "X-Forwarded-User"
  1051. result := opts.AuthProxyHeader()
  1052. if result != expected {
  1053. t.Fatalf(`Unexpected AUTH_PROXY_HEADER value, got %q instead of %q`, result, expected)
  1054. }
  1055. }
  1056. func TestDefaultAuthProxyHeaderValue(t *testing.T) {
  1057. os.Clearenv()
  1058. parser := NewParser()
  1059. opts, err := parser.ParseEnvironmentVariables()
  1060. if err != nil {
  1061. t.Fatalf(`Parsing failure: %v`, err)
  1062. }
  1063. expected := defaultAuthProxyHeader
  1064. result := opts.AuthProxyHeader()
  1065. if result != expected {
  1066. t.Fatalf(`Unexpected AUTH_PROXY_HEADER value, got %q instead of %q`, result, expected)
  1067. }
  1068. }
  1069. func TestAuthProxyUserCreationWhenUnset(t *testing.T) {
  1070. os.Clearenv()
  1071. parser := NewParser()
  1072. opts, err := parser.ParseEnvironmentVariables()
  1073. if err != nil {
  1074. t.Fatalf(`Parsing failure: %v`, err)
  1075. }
  1076. expected := false
  1077. result := opts.IsAuthProxyUserCreationAllowed()
  1078. if result != expected {
  1079. t.Fatalf(`Unexpected AUTH_PROXY_USER_CREATION value, got %v instead of %v`, result, expected)
  1080. }
  1081. }
  1082. func TestAuthProxyUserCreationAdmin(t *testing.T) {
  1083. os.Clearenv()
  1084. os.Setenv("AUTH_PROXY_USER_CREATION", "1")
  1085. parser := NewParser()
  1086. opts, err := parser.ParseEnvironmentVariables()
  1087. if err != nil {
  1088. t.Fatalf(`Parsing failure: %v`, err)
  1089. }
  1090. expected := true
  1091. result := opts.IsAuthProxyUserCreationAllowed()
  1092. if result != expected {
  1093. t.Fatalf(`Unexpected AUTH_PROXY_USER_CREATION value, got %v instead of %v`, result, expected)
  1094. }
  1095. }