afuna: Cat under a blanket. Text: "Cats are just little people with Fur and Fangs" (Default)
afuna ([personal profile] afuna) wrote in [site community profile] changelog2009-09-11 01:47 pm

[dw-free] Many tests in t/ fail

[commit: http://hg.dwscoalition.org/dw-free/rev/863165dfc54e]

http://bugs.dwscoalition.org/show_bug.cgi?id=1721

More warnings. Less warnings?

Patch by [personal profile] szabgab.

Files modified:
  • cgi-bin/LJ/EmbedModule.pm
  • cgi-bin/LJ/Userpic.pm
  • cgi-bin/cleanhtml.pl
  • cgi-bin/parsefeed.pl
  • t/cleaner-invalid.t
--------------------------------------------------------------------------------
diff -r 6fdc677f6e0f -r 863165dfc54e cgi-bin/LJ/EmbedModule.pm
--- a/cgi-bin/LJ/EmbedModule.pm	Fri Sep 11 13:44:33 2009 +0000
+++ b/cgi-bin/LJ/EmbedModule.pm	Fri Sep 11 13:47:03 2009 +0000
@@ -194,7 +194,7 @@ sub parse_module_embed {
 
         # we decided to switch back to REGULAR and have something in embed buffer
         # so let's save buffer as an embed module and start all over again
-        if ($newstate == REGULAR && $embed) {
+        if (defined $newstate && $newstate == REGULAR && $embed) {
             $embed_attrs{id} = $class->save_module(
                 id => ($preview ? $next_preview_id++ : $embed_attrs{id}),
                 contents => $embed,
diff -r 6fdc677f6e0f -r 863165dfc54e cgi-bin/LJ/Userpic.pm
--- a/cgi-bin/LJ/Userpic.pm	Fri Sep 11 13:44:33 2009 +0000
+++ b/cgi-bin/LJ/Userpic.pm	Fri Sep 11 13:47:03 2009 +0000
@@ -151,7 +151,8 @@ sub absorb_row {
     for my $f (qw(userid picid width height comment description location state url pictime flags md5base64)) {
         $self->{$f} = $row->{$f};
     }
-    $self->{_ext} = $MimeTypeMap{$row->{fmt} || $row->{contenttype}};
+    my $key = $row->{fmt} || $row->{contenttype}; # avoid warnings on uninitialized value in hash element FIXME
+    $self->{_ext} = $MimeTypeMap{$key} if defined $key;
     return $self;
 }
 
@@ -680,6 +681,7 @@ sub create {
     };
 
     ### insert the blob
+    $target ||= ''; # avoid warnings FIXME should this be set before the INSERT call?
     if ($target eq 'mogile' && !$dberr) {
         my $fh = LJ::mogclient()->new_file($u->mogfs_userpic_key($picid), 'userpics');
         if (defined $fh) {
@@ -801,7 +803,8 @@ sub delete {
     # TODO: we could fire warnings if they fail, then if $LJ::DIE_ON_WARN is set,
     # the ->warn methods on errobjs are actually dies.
     eval {
-        if ($self->location eq 'mogile') {
+        my $location = $self->location; # avoid warnings FIXME
+        if (defined $location and $location eq 'mogile') {
             LJ::mogclient()->delete($u->mogfs_userpic_key($picid));
         } elsif ($LJ::USERPIC_BLOBSERVER &&
                  LJ::Blob::delete($u, "userpic", $self->extension, $picid)) {
diff -r 6fdc677f6e0f -r 863165dfc54e cgi-bin/cleanhtml.pl
--- a/cgi-bin/cleanhtml.pl	Fri Sep 11 13:44:33 2009 +0000
+++ b/cgi-bin/cleanhtml.pl	Fri Sep 11 13:47:03 2009 +0000
@@ -368,7 +368,7 @@ sub clean
             # because IE understands them.
             $tag =~ s!/.+$!!;
 
-            if ($action{$tag} eq "eat") {
+            if (defined $action{$tag} and $action{$tag} eq "eat") {
                 $p->unget_token($token);
                 $p->get_tag("/$tag");
                 next;
@@ -743,10 +743,10 @@ sub clean
                     my $allow;
                     if ($mode eq "allow") {
                         $allow = 1;
-                        if ($action{$tag} eq "deny") { $allow = 0; }
+                        if (defined $action{$tag} and $action{$tag} eq "deny") { $allow = 0; }
                     } else {
                         $allow = 0;
-                        if ($action{$tag} eq "allow") { $allow = 1; }
+                        if (defined $action{$tag} and $action{$tag} eq "allow") { $allow = 1; }
                     }
 
                     if ($allow && ! $remove{$tag})
@@ -862,10 +862,10 @@ sub clean
             } else {
                 if ($mode eq "allow") {
                     $allow = 1;
-                    if ($action{$tag} eq "deny") { $allow = 0; }
+                    if (defined $action{$tag} and $action{$tag} eq "deny") { $allow = 0; }
                 } else {
                     $allow = 0;
-                    if ($action{$tag} eq "allow") { $allow = 1; }
+                    if (defined $action{$tag} and $action{$tag} eq "allow") { $allow = 1; }
                 }
 
                 if ($extractlinks && $tag eq "a") {
diff -r 6fdc677f6e0f -r 863165dfc54e cgi-bin/parsefeed.pl
--- a/cgi-bin/parsefeed.pl	Fri Sep 11 13:44:33 2009 +0000
+++ b/cgi-bin/parsefeed.pl	Fri Sep 11 13:47:03 2009 +0000
@@ -42,7 +42,7 @@ sub parse_feed
     # simple heuristic: Atom feeds will have '<feed' somewhere
     # TODO: maybe store the feed's type on creation in a userprop and not guess here
 
-    if ($type eq 'atom' || $content =~ m!\<feed!) {
+    if ( (defined $type && $type eq 'atom') || $content =~ m!\<feed!) {
         # try treating it as an atom feed
         $parser = new XML::Parser(Style=>'Stream', Pkg=>'LJ::ParseFeed::Atom');
         return ("", "failed to create XML parser") unless $parser;
@@ -276,7 +276,7 @@ sub StartTag {
         if ($tag eq 'link') {
             # store 'self' and 'hub' rels, for PubSubHubbub support; but only valid
             # for the feed, so make sure $item is undef
-            if ( ! $item && ( $_{rel} eq 'self' || $_{rel} eq 'hub' ) ) {
+            if ( ! $item && $_{rel} && ( $_{rel} eq 'self' || $_{rel} eq 'hub' ) ) {
                 return err( 'Feed not yet defined' )
                     unless $feed;
 
@@ -288,7 +288,7 @@ sub StartTag {
 
             # ignore links with rel= anything but alternate
             # and treat links as rel=alternate if not explicit
-            unless ($_{'rel'} eq 'alternate' || !$_{'rel'}) {
+            unless (!$_{'rel'} || $_{'rel'} eq 'alternate') {
                 swallow();
                 last TAGS;
             }
diff -r 6fdc677f6e0f -r 863165dfc54e t/cleaner-invalid.t
--- a/t/cleaner-invalid.t	Fri Sep 11 13:44:33 2009 +0000
+++ b/t/cleaner-invalid.t	Fri Sep 11 13:47:03 2009 +0000
@@ -33,10 +33,12 @@ is($clean_post, $u->ljuser_display, "Use
 is($clean_post, $u->ljuser_display, "User tag is fine.");
 
 
-my $u = temp_user();
-$post = "<lj user=\"" . $u->user . "\"> and some text <marquee><font size=\"24\"><color=\"FF0000\">blah blah";
-$clean->();
-is($clean_post,
-   $u->ljuser_display . qq { and some text <marquee><font size="24"></font></marquee><div class='ljparseerror'>[<b>Error:</b> Irreparable invalid markup ('&lt;color=&quot;ff0000&quot;&gt;') in entry.  Owner must fix manually.  Raw contents below.]<br /><br /><div style="width: 95%; overflow: auto">} . LJ::ehtml($post) . "</div></div>",
-   "Invalid markup with a user tag renders correctly.");
+{
+    my $u = temp_user();
+    $post = "<lj user=\"" . $u->user . "\"> and some text <marquee><font size=\"24\"><color=\"FF0000\">blah blah";
+    $clean->();
+    is($clean_post,
+        $u->ljuser_display . qq { and some text <marquee><font size="24"></font></marquee><div class='ljparseerror'>[<b>Error:</b> Irreparable invalid markup ('&lt;color=&quot;ff0000&quot;&gt;') in entry.  Owner must fix manually.  Raw contents below.]<br /><br /><div style="width: 95%; overflow: auto">} . LJ::ehtml($post) . "</div></div>",
+        "Invalid markup with a user tag renders correctly.");
+}
 
--------------------------------------------------------------------------------