ZoneCloudflareServer_test.go 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. package server
  2. import (
  3. "cfTest/cloudflareApi/zone"
  4. "context"
  5. "github.com/samber/lo"
  6. "log"
  7. "testing"
  8. )
  9. //func TestCreateRuleSet(t *testing.T) {
  10. // type args struct {
  11. // zoneID string
  12. // rulesetPhase string
  13. // ruleset cloudflare.Ruleset
  14. // }
  15. //
  16. // var (
  17. // True = true
  18. // CONST604800 = uint(604800)
  19. // )
  20. //
  21. // tests := []struct {
  22. // name string
  23. // args args
  24. // want interface{}
  25. // wantErr bool
  26. // }{
  27. // {
  28. // name: "Test1",
  29. // args: args{
  30. // zoneID: "e29551894461bf16e43a113e5ab09ed3",
  31. // rulesetPhase: "http_request_cache_settings",
  32. // ruleset: cloudflare.Ruleset{
  33. // Rules: []cloudflare.RulesetRule{
  34. // {
  35. // Expression: "(starts_with(http.request.uri.path, \"/\"))",
  36. // Enabled: true,
  37. // Description: "test1",
  38. // Action: "set_cache_settings",
  39. // ActionParameters: &cloudflare.RulesetRuleActionParameters{
  40. // Cache: &True,
  41. // CacheKey: &cloudflare.RulesetRuleActionParametersCacheKey{
  42. // CustomKey: &cloudflare.RulesetRuleActionParametersCustomKey{
  43. // Query: &cloudflare.RulesetRuleActionParametersCustomKeyQuery{
  44. // Exclude: &cloudflare.RulesetRuleActionParametersCustomKeyList{
  45. // List: []string{
  46. // "abc",
  47. // },
  48. // All: false,
  49. // },
  50. // },
  51. // },
  52. // },
  53. // EdgeTTL: &cloudflare.RulesetRuleActionParametersEdgeTTL{
  54. // Mode: "override_origin",
  55. // Default: &CONST604800,
  56. // },
  57. // },
  58. // },
  59. // },
  60. // },
  61. // },
  62. // want: nil,
  63. // wantErr: false,
  64. // },
  65. // }
  66. // for _, tt := range tests {
  67. // t.Run(tt.name, func(t *testing.T) {
  68. // got, err := UpdateRuleSet("", "", tt.args.zoneID, tt.args.rulesetPhase, tt.args.ruleset)
  69. // if (err != nil) != tt.wantErr {
  70. // t.Errorf("UpdateRuleSet() error = %v, wantErr %v", err, tt.wantErr)
  71. // return
  72. // }
  73. // if !reflect.DeepEqual(got, tt.want) {
  74. // t.Errorf("UpdateRuleSet() got = %v, want %v", got, tt.want)
  75. // }
  76. // })
  77. // }
  78. //}
  79. //func newUint32(a uint32) *uint32 {
  80. // return &a
  81. //}
  82. //func newStr(a string) *string {
  83. // return &a
  84. //}
  85. var (
  86. apiKey = "2cc87f6213a4c40e5a90c8dced3c9c577eda5"
  87. apiEmail = "ll@centcloud.net"
  88. )
  89. //func TestUpdatePageRule(t *testing.T) {
  90. //
  91. // type args struct {
  92. // apiKey string
  93. // apiEmail string
  94. // zoneID string
  95. // rule *zone.Rule
  96. // }
  97. // tests := []struct {
  98. // name string
  99. // args args
  100. // want *cloudflare.PageRule
  101. // wantErr bool
  102. // }{
  103. // {
  104. // name: "测试1",
  105. // args: args{
  106. // apiKey: apiKey,
  107. // apiEmail: apiEmail,
  108. // zoneID: "e29551894461bf16e43a113e5ab09ed3",
  109. // rule: &zone.Rule{
  110. // Expression: "www.1011test5.com.cdn.sensordb.site/*\n",
  111. // Ttl: newUint32(18000),
  112. // QueryArgsType: newStr("ExcludeAll"),
  113. // QueryArgs: []string{"qwe12", "78u9hi"},
  114. // OriginHost: newStr("www.baidu.com"),
  115. // OriginPath: nil,
  116. // OriginProtocol: newUint32(80),
  117. // RequestHeader: nil,
  118. // ResponseHeader: nil,
  119. // },
  120. // },
  121. // want: nil,
  122. // wantErr: false,
  123. // },
  124. // // TODO: Add test cases.
  125. // }
  126. // for _, tt := range tests {
  127. // t.Run(tt.name, func(t *testing.T) {
  128. // got, err := UpdatePageRule(tt.args.apiKey, tt.args.apiEmail, tt.args.zoneID, tt.args.rule)
  129. // if (err != nil) != tt.wantErr {
  130. // t.Errorf("UpdatePageRule() error = %v, wantErr %v", err, tt.wantErr)
  131. // return
  132. // }
  133. // print("%v", got)
  134. // //if !reflect.DeepEqual(got, tt.want) {
  135. // // t.Errorf("UpdatePageRule() got = %v, want %v", got, tt.want)
  136. // //}
  137. // })
  138. // }
  139. //}
  140. func TestZoneServer_GetRuleSet(t *testing.T) {
  141. type fields struct {
  142. UnimplementedZoneCloudflareServer zone.UnimplementedZoneCloudflareServer
  143. }
  144. type args struct {
  145. ctx context.Context
  146. requestCloudflare *zone.GetRuleSetRequestCloudflare
  147. }
  148. tests := []struct {
  149. name string
  150. fields fields
  151. args args
  152. want *zone.RuleList
  153. wantErr bool
  154. }{
  155. {
  156. name: "测试1",
  157. fields: fields{
  158. UnimplementedZoneCloudflareServer: zone.UnimplementedZoneCloudflareServer{},
  159. },
  160. args: args{
  161. ctx: context.Background(),
  162. requestCloudflare: &zone.GetRuleSetRequestCloudflare{
  163. ApiKey: apiKey,
  164. ApiEmail: apiEmail,
  165. ZoneId: "e29551894461bf16e43a113e5ab09ed3",
  166. Phase: zone.Phase_http_request_transform,
  167. },
  168. },
  169. want: nil,
  170. wantErr: false,
  171. },
  172. }
  173. for _, tt := range tests {
  174. t.Run(tt.name, func(t *testing.T) {
  175. s := &ZoneServer{
  176. UnimplementedZoneCloudflareServer: tt.fields.UnimplementedZoneCloudflareServer,
  177. }
  178. got, err := s.GetRuleSet(tt.args.ctx, tt.args.requestCloudflare)
  179. if (err != nil) != tt.wantErr {
  180. t.Errorf("GetRuleSet() error = %v, wantErr %v", err, tt.wantErr)
  181. return
  182. }
  183. log.Print(got)
  184. //if !reflect.DeepEqual(got, tt.want) {
  185. // t.Errorf("GetRuleSet() got = %v, want %v", got, tt.want)
  186. //}
  187. })
  188. }
  189. }
  190. func TestZoneServer_UpdateRuleSet(t *testing.T) {
  191. type fields struct {
  192. UnimplementedZoneCloudflareServer zone.UnimplementedZoneCloudflareServer
  193. }
  194. type args struct {
  195. ctx context.Context
  196. requestCloudflare *zone.UpdateRuleSetRequestCloudflare
  197. }
  198. tests := []struct {
  199. name string
  200. fields fields
  201. args args
  202. want *zone.RuleList
  203. wantErr bool
  204. }{
  205. {
  206. name: "测试1",
  207. fields: fields{
  208. UnimplementedZoneCloudflareServer: zone.UnimplementedZoneCloudflareServer{},
  209. },
  210. args: args{
  211. ctx: nil,
  212. requestCloudflare: &zone.UpdateRuleSetRequestCloudflare{
  213. ApiKey: apiKey,
  214. ApiEmail: apiEmail,
  215. ZoneId: "e29551894461bf16e43a113e5ab09ed3",
  216. Phase: zone.Phase_http_request_transform,
  217. Rules: []*zone.Rule{
  218. {
  219. Expression: "(http.request.uri.path contains \"www.1011test5.com.cdn.sensordb.site/\")",
  220. OriginPath: lo.ToPtr[string]("www.baidu.com"),
  221. RequestHeader: nil,
  222. ResponseHeader: nil,
  223. },
  224. },
  225. },
  226. },
  227. want: nil,
  228. wantErr: false,
  229. },
  230. }
  231. for _, tt := range tests {
  232. t.Run(tt.name, func(t *testing.T) {
  233. s := &ZoneServer{
  234. UnimplementedZoneCloudflareServer: tt.fields.UnimplementedZoneCloudflareServer,
  235. }
  236. got, err := s.UpdateRuleSet(tt.args.ctx, tt.args.requestCloudflare)
  237. if (err != nil) != tt.wantErr {
  238. t.Errorf("UpdateRuleSet() error = %v, wantErr %v", err, tt.wantErr)
  239. return
  240. }
  241. log.Print(got)
  242. //if !reflect.DeepEqual(got, tt.want) {
  243. // t.Errorf("UpdateRuleSet() got = %v, want %v", got, tt.want)
  244. //}
  245. })
  246. }
  247. }