item_test.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. // SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
  2. // SPDX-License-Identifier: Apache-2.0
  3. package googlereader // import "miniflux.app/v2/internal/googlereader"
  4. import (
  5. "net/http"
  6. "net/url"
  7. "reflect"
  8. "testing"
  9. )
  10. func TestConvertEntryIDToLongFormItemID(t *testing.T) {
  11. entryID := int64(344691561)
  12. expected := "tag:google.com,2005:reader/item/00000000148b9369"
  13. result := convertEntryIDToLongFormItemID(entryID)
  14. if result != expected {
  15. t.Errorf("expected %s, got %s", expected, result)
  16. }
  17. }
  18. func TestParseItemIDsFromRequest(t *testing.T) {
  19. formValues := url.Values{}
  20. formValues.Add("i", "12345")
  21. formValues.Add("i", "tag:google.com,2005:reader/item/00000000148b9369")
  22. formValues.Add("i", "tag:google.com,2005:reader/item/2f2")
  23. formValues.Add("i", "000000000000046f")
  24. formValues.Add("i", "tag:google.com,2005:reader/item/272")
  25. request := &http.Request{
  26. Form: formValues,
  27. }
  28. result, err := parseItemIDsFromRequest(request)
  29. if err != nil {
  30. t.Fatalf("unexpected error: %v", err)
  31. }
  32. var expected = []int64{12345, 344691561, 754, 1135, 626}
  33. if !reflect.DeepEqual(result, expected) {
  34. t.Errorf("expected %v, got %v", expected, result)
  35. }
  36. // Test with no item IDs
  37. formValues = url.Values{}
  38. request = &http.Request{
  39. Form: formValues,
  40. }
  41. _, err = parseItemIDsFromRequest(request)
  42. if err == nil {
  43. t.Fatalf("expected error, got nil")
  44. }
  45. }
  46. func TestParseItemID(t *testing.T) {
  47. // Test with long form ID and hex ID
  48. result, err := parseItemID("tag:google.com,2005:reader/item/0000000000000001")
  49. if err != nil {
  50. t.Fatalf("unexpected error: %v", err)
  51. }
  52. expected := int64(1)
  53. if result != expected {
  54. t.Errorf("expected %d, got %d", expected, result)
  55. }
  56. // Test with hexadecimal long form ID
  57. result, err = parseItemID("0000000000000468")
  58. if err != nil {
  59. t.Fatalf("unexpected error: %v", err)
  60. }
  61. expected = int64(1128)
  62. if result != expected {
  63. t.Errorf("expected %d, got %d", expected, result)
  64. }
  65. // Test with short form ID
  66. result, err = parseItemID("12345")
  67. if err != nil {
  68. t.Fatalf("unexpected error: %v", err)
  69. }
  70. expected = int64(12345)
  71. if result != expected {
  72. t.Errorf("expected %d, got %d", expected, result)
  73. }
  74. // Test with invalid long form ID
  75. _, err = parseItemID("tag:google.com,2005:reader/item/000000000000000g")
  76. if err == nil {
  77. t.Fatalf("expected error, got nil")
  78. }
  79. // Test with invalid short form ID
  80. _, err = parseItemID("invalid_id")
  81. if err == nil {
  82. t.Fatalf("expected error, got nil")
  83. }
  84. // Test with empty ID
  85. _, err = parseItemID("")
  86. if err == nil {
  87. t.Fatalf("expected error, got nil")
  88. }
  89. }